检索在其中实例化变量的类



Java中是否可以接收一个声明特定变量的类?例如,请注意以下代码:

class SomeClass {
    private AnotherClass myVariable;
}

我想做的是在另一个类中接收一个类 SomeClass。但我找不到有关此的任何信息。如果不可能,请通知我。

我认为您不能直接访问此信息,但有间接方法。

  1. 如果你只是想要

    在另一个类中接收类 SomeClass

    您可以将AnotherClass设置为内部类 - 以便可以访问外部类信息。

  2. 您可以找到带有反射的类SomeClass:迭代所有类并查找哪个类具有类AnotherClass字段。

  3. 添加注释以在迭代所有类时直接检测SomeClass

如注释所示,您可以使用 Field.getDeclaringClass((。

但是看看这些类:

class Master {
    private Object o;
}
class Sub extends Master {}

在这种情况下,Sub.class.getDeclaredField("o");会抛出java.lang.NoSuchFieldException: o,因为oMaster的成员。

所以你需要调用Master.class.getDeclaredField("o");(所以你已经需要知道声明类...

相关内容

  • 没有找到相关文章

最新更新