1
javaファイルから呼び出せるjavaクラスのすべてのメソッドのリストを取得する方法が必要です。私はClass.getMethods
を使用できることを知っているが、私はそれを必要とするように、それはいくつかの状況では動作しません:Javaソースコードから呼び出すことができるクラスのメソッドのリストを取得する
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ソースファイル。両方setValue
メソッドが呼び出されしても大丈夫です
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;
};
}
:このような状況があるかもしれませんbecasue
ただ、「あまり具体的な」パラメータで1を削除するにも解決策ではありません。
を介して
bridge
のメソッドをフィルタリングしなければなりません。また、 'Field'のスーパークラスをループしたいかもしれません。 – SomeJavaGuyこれは、タイプ消去のために機能しません。 –
これはあなたにいくつかのポインタを与える必要があります:http://stackoverflow.com/questions/14841952/getting-declared-methods-java –