现在我想实现这个接口的类。 那我应该怎么做呢?公共接口ITMark <E extends Comparable <E>>
public class TMark<E> implements ITMark{}
是这样的方式,但引发错误
我得到以下几点:
ITMark is a raw type. References to generate type ITMark<E> should be parametrized
我在Eclipse IDE执行这段代码
现在我想实现这个接口的类。 那我应该怎么做呢?公共接口ITMark <E extends Comparable <E>>
public class TMark<E> implements ITMark{}
是这样的方式,但引发错误
我得到以下几点:
ITMark is a raw type. References to generate type ITMark<E> should be parametrized
我在Eclipse IDE执行这段代码
做到这一点:
public class TMark<SomeComparableClass> implements ITMark<SomeComparableClass> {
// implement the methods of ITMark for type SomeComparableClass
}
您必须指定其中您正在为此课程实施的可比较课程。仅供参考,最常见的Java类型(例如Integer,String,Date等)是Comparable。
ITMark
是原始类型,因为它没有声明的通用参数。
如果您将TMark
声明为TMark<E extends Comparable<E>> implements ITMark<E>
,它将不再是原始类型,因为您声明了其通用参数。
您遗漏了泛型参数,即尖括号中的部分。你需要的东西,如:
public class TMark <E extends Comparable <E> implements ITMark<E>
{
...
}
对于你把尖括号内合适的“可比”型,就像一个特定的泛型类型:
public class IntegerTMark extends TMark <Integer>
{
...
}
对于一个很好的介绍,仿制药,阅读Java教程,从Joshua Bloch的有效的Java在http://java.sun.com/docs/books/effective/generics.pdf的免费章节和关于仿制药在https://www.ibm.com/developerworks/java/的许多文章。
我格式化了你的答案。请学习如何格式化东西 – Bohemian