我有一個將通用對象(即T)添加到列表中的方法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異常。
任何人都可以幫助我找出這種方法嗎?任何指針來糾正上述代碼?
謝謝!
只是出於興趣,爲什麼你需要反思來測試這種方法? – darrengorman 2012-04-10 18:09:52
我在自定義Eclipse中公開這個方法。正如你可能知道的,Eclipse使用反射(反思類和建議方法)。所以,在將它添加到Eclipse之前,我只想單元測試。 – 2012-04-10 21:29:36