2

一般的なオブジェクト (つまり T) を List に追加する add メソッドがあります。このメソッドを単体テストしたい。

public static <T> List<T> add(List<T> list, T t) {
    if(list == null) return null;
    if(t == null) return list;

    List<T> outputList = new ArrayList<T>(list);
    outputList.add(t); // append item into list

    return outputList;
}

メソッドを取得してテストしようとしています。メソッドを取得するために、次のコード スニペットを作成しました (正しくないことがわかっています)。

Class myClass = Myclass.class;
Class<List<T>> clazz = (Class<List<T>>) Class.forName("java.util.ArrayList");
Method myObjectMethod = myClass.getMethod("add", ...) // i need to identify T's class

特定のトレイルエラー試行により、NoSuchMethod 例外が発生します。

この方法を特定するのを手伝ってくれる人はいますか? 上記のコードを修正するためのポインタはありますか?

ありがとう!

4

1 に答える 1

3

clazzおそらくList.class、ではなく、である必要がありArrayList.classます。メソッド定義で使用されている正確なraw型を使用する必要があります。

于 2012-04-10T18:01:10.733 に答える