如何禁止使用基本类型

时间:2019-12-12 03:04:02

标签: java generics

我想创建一个类SomeClass<E extends SomeInterface>, 而且我不希望客户端使用SomeClass作为像这样的原始类型:new SomeClass(), 我只希望客户端将其用作通用类型:new SomeClass<SomeInterfaceImpl>(), 因为我已经在SomeClass内写了一些基于SomeInterface的方法。 我该怎么办?

1 个答案:

答案 0 :(得分:2)

那不是不是一种原始类型;那是raw type。而且您不能阻止其使用。在Java 5之前,没有泛型类型。通过type erasure,它们被添加到了语言中(并且不会产生运行时开销)。但是,该决定(结合保持向后兼容性)的结果是原始类型。