java - 为包含类型参数的类型创建比较器
java - Create a Comparator for a type that contains type parameters
我有一个定义为 MyClass<T, S>
的 class,我想为其创建一个比较器,其中 T 和 S 扩展了 Foo。
我该怎么做?
不成功的尝试:
// Warning: The type parameter MyClass is hiding the type MyClass<T,S>
public class MyComparator<MyClass> implements Comparator<MyClass>
// Syntax errors and the warning from above
public class MyComparator<MyClass<T, S>> implements Comparator<MyClass<T, S>>
// Syntax errors
public class MyComparator<MyClass<T extends Foo, S extends Foo>> implements Comparator<MyClass<T extends Foo, S extends Foo>>
// Syntax errors and the warning from above
public class MyComparator<MyClass<? extends Foo, ? extends Foo>> implements Comparator<MyClass<? extends Foo, ? extends Foo>>
以及上述的各种组合。什么是正确的方法?谢谢。
您的 class 不是通用的。它总是比较相同类型的对象,而这个类型是MyClass<? extends Foo, ? extends Foo>
.
所以应该是
public class MyComparator implements Comparator<MyClass<? extends Foo, ? extends Foo>>
我有一个定义为 MyClass<T, S>
的 class,我想为其创建一个比较器,其中 T 和 S 扩展了 Foo。
我该怎么做?
不成功的尝试:
// Warning: The type parameter MyClass is hiding the type MyClass<T,S>
public class MyComparator<MyClass> implements Comparator<MyClass>
// Syntax errors and the warning from above
public class MyComparator<MyClass<T, S>> implements Comparator<MyClass<T, S>>
// Syntax errors
public class MyComparator<MyClass<T extends Foo, S extends Foo>> implements Comparator<MyClass<T extends Foo, S extends Foo>>
// Syntax errors and the warning from above
public class MyComparator<MyClass<? extends Foo, ? extends Foo>> implements Comparator<MyClass<? extends Foo, ? extends Foo>>
以及上述的各种组合。什么是正确的方法?谢谢。
您的 class 不是通用的。它总是比较相同类型的对象,而这个类型是MyClass<? extends Foo, ? extends Foo>
.
所以应该是
public class MyComparator implements Comparator<MyClass<? extends Foo, ? extends Foo>>