如何实现non-generic-interface
generic method
的字符串类型?
这是界面:
// non-generic-class
interface I{
public <T> T doI(T t);
}
答案 0 :(得分:1)
此接口中的所有<T>
表示传递给方法的类型T
与从方法返回的类型T
相同。
实现需要使用符号T,就好像它是类似
public <T> T doI(T t){
Object a = t.getClass().newInstance();
return (T) a;
}
然后您可以使用类似
的方式调用它I obj = getIImplementer ();
String a = obj.doI ("ssssssss");
编译器知道它可以从传递的对象类型推断出返回类型。
如果要实现特定版本,则需要将泛型参数放在接口而不是方法上,以便可以键入实现类,从而键入方法参数。