Учитывая:Полевые методы с использованием косвенного предоставления отражения
public class A {
public int n;
public int func(Object arg) {...}
...
}
public class B {
private A myA;
...
}
private B myB;
При использовании отражения на myB
я получаю поле myA
; как я могу получить доступ к членам и методам class A
? Для примера скажем, я получил строку "myA.n"
и данный объект myB
мне нужно, чтобы получить доступ myA.n
Class<?> c = B.class; // or myB.getClass()
Field f = c.getField("myA");
int p = ???????? // reflection for int p = myA.n;
int q = ???????? // reflection for int q = myA.func(new Integer(3));
'myA.class' не работает. Вам нужно 'myA.getClass();' –
@MarkoTopolnik У меня есть аналогичное отражение ** рабочий код ** с myA.class. Мой код на самом деле является методом 'private void myMethod (класс > c)' и я вызываю его с помощью 'myMethod (myA.class);'. Но 'getClass()' тоже будет работать – ilomambo
Если у вас нет класса, который * называется * 'myA', это даже не действительный синтаксис Java. –