我有一个看起来像这样的java类:
public class MainClass {
public static class InnerClass1 extends SomeClass {
...
}
public static class InnerClass2 extends SomeClass {
...
}
}
在运行时,有没有办法检查作为 InnerClass1 实例的对象并知道它是 MainClass 上的一个字段?我知道我可以向 MainClass 添加一个静态数组,其中包含其 SomeClass 字段的列表,但我想要一些更具编程动态的东西。像这样的东西:
MainClass.InnerClass1 object1 = someKindOfFactory.getObject();
BigDecimal someNumber = new BigDecimal("45.77");
if (object1.comesFrom(MainClass.class)) {
LOG.debug("Object is from MainClass");
} else {
LOG.debug("Object comes from somewhere else");
}
if (someNumber.comesFrom(MainClass.class)) {
LOG.debug("Object is from MainClass");
} else {
LOG.debug("Object comes from somewhere else");
}
结果:
DEBUG: Object is from MainClass
DEBUG: Object comes from somewhere else