从抽象类实现Comparator

时间:2014-01-26 23:28:02

标签: java generics abstract-class comparator

public abstract class SomeClass<Sometype extends OtherClass> extends Something   implements   Comparator<??>{

//code

我该如何更换?在Comparator中,它是任何扩展SomeClass的类?

2 个答案:

答案 0 :(得分:2)

目前尚不清楚是否要携带类型边界或只允许SomeClass的任何子类。

根据定义,您实现的compare方法将允许与任何子类型进行比较(因为任何子类型在传递给方法时都可以转换为更通用的父类型。)

要允许任何参数化类型而不是限制性Sometype,您可以写:

public abstract class SomeClass<Sometype extends OtherClass> extends Something
   implements Comparator<SomeClass<?>>

使用显式类型边界编写它也是合法的:

public abstract class SomeClass<Sometype extends OtherClass> extends Something
   implements Comparator<SomeClass<Sometype>>

答案 1 :(得分:0)

您无法使用? extends SomeClass之类的内容,但您可以只使用Comparator<SomeClass>并投射到您需要的内容