Java中是否可以接收一个声明特定变量的类?例如,请注意以下代码:
class SomeClass {
private AnotherClass myVariable;
}
我想做的是在另一个类中接收一个类 SomeClass。但我找不到有关此的任何信息。如果不可能,请通知我。
我认为您不能直接访问此信息,但有间接方法。
-
如果你只是想要
在另一个类中接收类 SomeClass
您可以将
AnotherClass
设置为内部类 - 以便可以访问外部类信息。 -
您可以找到带有反射的类
SomeClass
:迭代所有类并查找哪个类具有类AnotherClass
字段。 -
添加注释以在迭代所有类时直接检测
SomeClass
类
如注释所示,您可以使用 Field.getDeclaringClass((。
但是看看这些类:
class Master {
private Object o;
}
class Sub extends Master {}
在这种情况下,Sub.class.getDeclaredField("o");
会抛出java.lang.NoSuchFieldException: o
,因为o
是Master
的成员。
所以你需要调用Master.class.getDeclaredField("o");
(所以你已经需要知道声明类...