使用泛型创建 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>
。
我正在使用泛型创建 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>
。