我想在以下代码中生成类实例化:
旧代码:
public abstract class Test{
public static Test instantiate(Class clazz)throws Exception{ //instance of clazz extends Test
return (Test)clazz.newInstance();
}
}
因为参数的任何实例都clazz
将是扩展类Test
,所以我想要实现以下目标:
public static T <T extends Test> instantiate(Class<? extends Test> clazz){
return clazz.newInstance();
}
它给出了以下编译错误:
Unspecified Bound
如何使用Java泛型来做到这一点?
您混合了订单。这是正确的语法:
public static <T extends Test> T instantiate(Class<T> clazz) {
return clazz.newInstance();
}
请注意,Class<? extends Test>
已更改为Class<T>
。当然,您还需要注意任何可能的例外情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句