C#代码:
public class XYZ<T> where T : class, new()
在.net中,您可以使用上面的syntex强制泛型为类类型。
我的问题是我们如何使用Java实现相同的目标?
答案 0 :(得分:1)
在Java中,没有约束允许您表示该类型必须具有无参数构造函数。与Java中的.NET相反T
是erased at runtime。
答案 1 :(得分:0)
你做不到。你为什么要这样?无论如何,您无法在声明为t
的任何对象T t
上调用new。你能解释一下你为什么要这样做吗?
答案 2 :(得分:0)
Java没有这种特殊情况。通常你会做标准的使用抽象工厂。
将类型约束为具有特定构造函数是一个静态问题,因此不需要擦除/具体化来实现它。