Javagenerics约束需要像C#这样的默认构造函数

在C#中,我可以对generics参数设置类型约束,该参数要求generics类型具有默认的无参数构造函数。 我可以用Java做同样的事吗?

在C#中:

public static T SomeMethodThatDoesSomeStuff() where T : class, new() { // ... method body ... } 

class和new()约束意味着T必须是可以使用零参数的new运算符调用的类。 我对Javagenerics知之甚少,我可以使用extends来命名一个必需的超类。 我可以使用它(或任何其他支持的操作)来实现上述function吗?

没有; 在Java中,典型的解决方案是传递一个类,并且doc是0-arg构造函数的要求。 这当然不是静态检查,但不是太大的问题

 /** clazz must have a public default constructor */ public static  T f(Class clazz) return clazz.newInstance(); 

没有。

由于类型擦除, 的类型在运行时是未知的,因此实际上不可能实例化它。