考慮:現場使用間接反射方法
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(Class > c)'方法,我用'myMethod(myA.class)'調用它。但'getClass()'也可以工作 – ilomambo
除非你有一個名爲* myA的類,這甚至不是有效的Java語法。 –