現在我想實現這個接口的類。 那我應該怎麼做呢?公共接口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