使用泛型创建 class 时出现“> 预期”错误

"> expected" error on creating a class with generics

我正在使用泛型创建 class

public class MyEntry<K,Set<V extends SpecificEntry>> extends TimerTask{
//
}

但这会产生错误 > 预期 如我所见,菱形运算符已正确关闭

如果我成功了

public class MyEntry<K,Set> extends TimerTask{
//
}

有效,但我希望第二个参数是一组特定类型的参数。

应该怎么做才能做到这一点?

如果您希望第二个泛型参数是给定类型的集合,您需要:

public class MyEntry<K,V extends Set<? extends SpecificEntry>> extends TimerTask

顺便说一句,public class MyEntry<K,Set> extends TimerTask 并不像您想象的那样工作。 Set 在您的例子中是第二个泛型类型参数的名称,与 java.util.Set.

无关

一个可能的解决方案是不为 Set 泛型类型使用参数,而是仅参数化 Set 的 元素类型:

public class MyEntry<K, V extends SpecificEntry> extends TimerTask{
    //
}

然后在需要的地方使用Set<V>