在Java中是否可以接收一个声明了特定变量的类? 例如,请注意以下代码:
class SomeClass {
private AnotherClass myVariable;
}
我想要做的是在AnotherClass中接收一个类SomeClass。但我找不到任何有关此事的信息。 如果不可能,请通知我。
答案 0 :(得分:1)
我认为你不能直接访问这些信息,但有间接的方法。
如果你只是想要
在AnotherClass中接收一个类SomeClass
您可以将AnotherClass
设为内部课程 - 因此可以访问外部课程信息。
您可以使用反射找到课程SomeClass
:
迭代所有类并找到哪个类具有类AnotherClass
的字段。
添加注释以在迭代所有类时直接检测SomeClass
类
答案 1 :(得分:0)
如评论中所示,您可以使用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");
(所以你已经需要知道声明类...)