1

これに関して同様の質問がありますが、回答ではパラメーターの型が使用されています。

私の質問は、リフレクションを使用して返されたメソッドがオーバーロードされているかどうかを確認するために何をすべきかということです。

考えられる方法は次のとおりです。1) ループして同じメソッドを再度検索する

    List<Method> overloaded = new ArrayList<Method>();
    Method[] declaredMethods = A.class.getDeclaredMethods();

    for(int i = 0; i < declaredMethods.length; i++){
        for(int j = (i + 1); j < declaredMethods.length; j++){
            if(declaredMethods[j].getName().equals(declaredMethods[i].getName())){
                overloaded.add(declaredMethods[i]);
            }
        }
    }

    System.out.println(overloaded);

これよりもアルゴリズムの複雑さが優れているオーバーロードされたメソッドを見つける方法はありますか? 一部のライブラリは同じ機能を提供していますか?

4

1 に答える 1

2

を使用できますSetadd()オペレーションがメソッド名を返す場合、falseそのメソッド名はすでにセットに含まれています。
Java Reflection には、メソッドがオーバーロードされているかどうかを判断するメソッドがありません。

于 2013-03-08T11:21:29.150 に答える