2

我有一个方法 add 将一个通用对象(即 T)添加到一个列表中。我想对这个方法进行单元测试。

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。您必须使用方法定义中使用的确切原始类型。

于 2012-04-10T18:01:10.733 回答