我想创建一个类SomeClass<E extends SomeInterface>
,
而且我不希望客户端使用SomeClass
作为像这样的原始类型:new SomeClass()
,
我只希望客户端将其用作通用类型:new SomeClass<SomeInterfaceImpl>()
,
因为我已经在SomeClass
内写了一些基于SomeInterface
的方法。
我该怎么办?
答案 0 :(得分:2)
那不是不是一种原始类型;那是raw type。而且您不能阻止其使用。在Java 5之前,没有泛型类型。通过type erasure,它们被添加到了语言中(并且不会产生运行时开销)。但是,该决定(结合保持向后兼容性)的结果是原始类型。