Radwa Ali Ответов: 0

Android отражение между 2 классами


Мне нужно знать, может ли отражение в android повлиять на внешний класс (класс а)
допустим, у меня есть класс а
которые имеют метод setData:

public void setData(int id){
    editText1.setText(id+"");
}


и класс В ;
Я посылаю A.class в качестве параметра класса B представим через c.

Object obj = c.newInstance();
Method method1 = c.getMethod("setData", new Class[]{Integer.TYPE});
method1.setAccessible(true);
method1.invoke(obj, 3)

этот код работает во внутреннем классе (класс B), но снаружи в исходном классе A, как будто я ничего не менял.

заранее спасибо.

Что я уже пробовал:

Я попытался отследить отправку данных, то есть идентификатор после вызова метода в классе B и печати его в обоих классах он изменился в классе B только класс A не имеет никакого эффекта

Richard MacCutchan

Может быть, призыв к newInstance быть проблемой. Я думаю, что вы должны вызывать метод на существующем объекте, который содержит ссылку на editText1.

Radwa Ali

Мне нужно создать объект в классе B, это какой-то подход ,который я должен использовать , в классе A не будет никакого объекта, просто отправьте класс, а в классе B создайте объект и получите доступ к методам из него, я просто хочу знать, возможно ли это, чтобы я мог изменить подход.
спасибо за ваш ответ.

Sergey Alexandrovich Kryukov

Это не вопрос, Извините.

Он может собирать информацию о классе, метаданные и может быть использован для вызова некоторого метода/свойства, в частности, для создания экземпляра класса.
Чего именно вы хотите достичь?

—СА

Radwa Ali

Просто я хочу ,если у меня есть значение ID и setId(int идентификатор) &ампер; getId() метод в классе А я хочу назвать setId(3)ID в класс Б используя метод.вызов, и вызов getId() из класса " А " для возврата 3.
извините, если не ясно, что английский-не мой родной язык.

Richard MacCutchan

В будущем, пожалуйста, используйте кнопку ответа над сообщением, чтобы ответить на него.

Я не понимаю этого вопроса, и я все еще думаю, что создание нового объекта-это не решение вашей проблемы.

0 Ответов