gpt4 book ai didi

java - 你能得到继承的方法的子类吗?

转载 作者:行者123 更新时间:2023-12-01 12:22:08 25 4
gpt4 key购买 nike

看一下这段代码:

public class Main {

public class A {
public final void method() {}
}

public class B extends A {}

public static main() {
try {
Method method = B.class.getMethod("method");

//Returns the name of Main$A, but I want Main$B
System.out.println(method.getDeclaringClass().getName());
} catch (NoSuchMethodException e) {}
}
}

我试图从我之前从子类中获取的继承方法中获取该类。这样做的原因是在我的应用程序中,我将所有带有指定注释的方法按对象存储到 Set<Method> 中。并将对象本身存储在 Map<Class<?>, Object> 中这是为了以后方便地调用该方法。

我知道这对于 method.getDeclaringClass() 是有意义的返回Main$A ,因为这是它的声明位置,而不是 Main$B ,但我只是想知道是否有其他方法可以解决我的问题。

最佳答案

您试图以与 java 标准不兼容的方式重新索引类方法。我认为没有解决方法;你的代码应该反射(reflect)事物的结构方式; IE。使用 getDeclaringClass() 返回的类填充您的 map 。

关于java - 你能得到继承的方法的子类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com