Java,获取包含类的类对象,而不是运行时类

标签 java reflection oop

考虑这段 Java 代码

class A{
 //@returns Class object this method is contained in
 // should be A in this case
 public Class<?> f() {
   return getClass();
 }
}

class B extends A {}

B b = new B();

System.out.println(b.f());
//output -- B.class (Wrong, should be A.class)

f() 中,我不能使用 getClass(),因为它会给我运行类型,即 B。我正在寻找一种方法来获取 class f()Class 对象在里面(没有提到 A明确地,显然地)

最佳答案

new Object() {}.getClass().getEnclosingClass()。但请不要!

关于Java,获取包含类的类对象,而不是运行时类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1507257/

相关文章:

java - 修复碰撞检测穿透

java - 在 Android (Java) 中使用硬件组件

c# - 具有相同签名的委托(delegate)

c# - 为什么我们需要将 Object 类作为所有类的基类?

string - 在 valgrind 中读取和写入大小无效

java - Spring JPA 注释和 ORM.xml 替代方案?

java - 什么是NullPointerException,我该如何解决?

java - 令人惊讶的编译错误获取类的数组类

go - 在 reflect.MakeFunc 中返回错误值

java - 根据字符串的值从 A...Z 类(可扩展)创建对象