gpt4 book ai didi

java - 获取可从 java 源代码调用的类中的方法列表

转载 作者:行者123 更新时间:2023-11-30 07:26:47 24 4
gpt4 key购买 nike

我需要一种方法来获取可以从 java 文件调用的 java 类的所有方法的列表。我知道我可以使用 Class.getMethods,但这在某些情况下不起作用,比如我需要它:

public interface IField<T> {
public void setValue(T value);
}

public class Field implements IField<String> {
private String value;

@Override
public void setValue(String value) {
this.value = value;
}
}

调用Field.class.getMethods()包含setValue方法,但只允许调用带有String参数的方法来自java源文件。

仅仅删除带有“不太具体”参数的参数也不是解决方案,因为可能会出现这样的情况:

public abstract class AbstractBean {
private Object value;

public void setValue(Object value) {
this.value = value;
}
}

public class Field extends AbstractBean {
private Integer value;

public void setValue(Integer value) {
this.value = value;
};
}

其中两个 setValue 方法都可以调用。

最佳答案

经过更多研究,我发现了这个 article on type erasure 。所以我必须通过 Method.isBridge()

过滤掉 bridge 方法

关于java - 获取可从 java 源代码调用的类中的方法列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36717713/

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