在C#中,我可以对泛型参数设置类型约束,该参数要求泛型类型具有默认的无参数构造函数.我可以用Java做同样的事吗?
在C#中:
public static T SomeMethodThatDoesSomeStuff<T>() where T : class, new()
{
// ... method body ...
}
Run Code Online (Sandbox Code Playgroud)
class和new()约束意味着T必须是可以使用零参数的new运算符调用的类.我对Java泛型的了解很少,我可以extends用来命名一个必需的超类.我可以使用它(或任何其他支持的操作)来实现上述功能吗?
没有; 在Java中,典型的解决方案是传递一个类,并且doc是0-arg构造函数的要求.这肯定不是静态检查,但不是太大的问题
/** clazz must have a public default constructor */
public static <T> T f(Class<T> clazz)
return clazz.newInstance();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3614 次 |
| 最近记录: |