公共界面ITMark <e extends =“”可比较<e =“”>&gt; </e>

时间:2011-08-21 22:48:53

标签: java class interface comparable implements

现在我想用这个类实现这个接口。 那怎么办呢?

public class TMark<E> implements ITMark{}

这是方式,但抛出错误

我得到以下内容:

ITMark is a raw type. References to generate type ITMark<E> should be parametrized

我在Eclipse IDE中实现此代码

3 个答案:

答案 0 :(得分:0)

这样做:

public class TMark<SomeComparableClass> implements ITMark<SomeComparableClass> {
    // implement the methods of ITMark for type SomeComparableClass
}

您必须为此类指定您正在实施的可比较类。仅供参考,最常见的java类型(例如Integer,String,Date等)是Comparable。

答案 1 :(得分:0)

ITMark是原始类型,因为它没有声明的通用参数。

如果您将TMark声明为TMark<E extends Comparable<E>> implements ITMark<E>,则它将不再是原始类型,因为您声明了其通用参数。

答案 2 :(得分:0)

您遗漏了通用参数,即尖括号中的部分。你需要这样的东西:

public class TMark <E extends Comparable <E> implements ITMark<E>
{
    ...
}

对于特定的泛型类型,您在尖括号内放置了一个合适的“Comparable”类型,如:

public class IntegerTMark extends TMark <Integer>
{
    ...
}

有关泛型的一个很好的介绍,请阅读Java教程,来自http://java.sun.com/docs/books/effective/generics.pdf的Joshua Bloch的 Effective Java 的免费章节以及https://www.ibm.com/developerworks/java/处有关泛型的许多文章。< / p>