我想创建一个通用的ThreadWorker
类,它的泛型类型<T>
接受扩展类型为<String>
的Collection类的类。
我试过了:
public class Worker <T extends Collections<String>> extends SwingWorker<VectorDetails , String>
但是我收到一个错误:
The type Collections is not generic; it cannot be parameterized with arguments <String>
当我写作时:
public class Worker <T extends Collections> extends SwingWorker<VectorDetails , String>
它编译很好,但这不是我需要的,因为这个Worker类的实例可以使用不是String
的其他类的类型创建。 (像< Integer>
,<Character>
等...)。
如何强制用户使用扩展/实现包含字符串的Collection类的类型创建我的类的实例?
那是你在找什么?
class StringCollection<T extends Collection<H>, H extends String> {}
错误说明代码中有什么问题。 Collections
不是通用类型。它是一个实用程序类,有很多静态方法来操作Collection。你应该使用Collection<String>
或任何类型。 Collection
是一个泛型类型(列出并设置扩展)。