1
如何创建可调用重载方法的泛型方法? 我试过了,但它给出了一个编译错误。调用通用方法的重载方法
Test.java:19:发现不兼容的类型 :java.lang.Object中 要求:T Ť螈= getCloneOf(T); ^
import java.util.*;
public class Test {
private Object getCloneOf(Object s) {
return new Object();
}
private String getCloneOf(String s) {
return new String(s);
}
private <T> Set<T> getCloneOf(Set<T> set){
Set<T> newSet = null;
if(null != set) {
newSet = new HashSet<T>();
for (T t : set) {
T newt = getCloneOf(t);
newSet.add(newt);
}
}
}
}
呃,你是否希望每种可能的类型都有'getCloneOf'方法?我的意思是,如果'T'是'Integer',你期望发生什么? – 2010-03-28 04:49:25
@ asela38我期待看看是否有克隆参数化类型的方法,但问题是Object.clone()被保护,除非类实现了ICloneable,并且new T()没有工作。 http://en.wikipedia.org/wiki/Generics_in_Java#Type_erasure嗯... – 2010-03-28 04:55:16