【问题标题】:public interface ITMark<E extends Comparable<E>>公共接口 ITMark<E extends Comparable<E>>
【发布时间】:2011-10-31 18:48:04
【问题描述】:

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

public class TMark<E> implements ITMark{}

是这样但是会报错

我得到以下信息:

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

我正在 Eclipse IDE 中实现此代码

【问题讨论】:

    标签: java class interface comparable implements


    【解决方案1】:

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

    如果您将TMark 声明为TMark&lt;E extends Comparable&lt;E&gt;&gt; implements ITMark&lt;E&gt;,则它将不再是原始类型,因为您声明了它的泛型参数。

    【讨论】:

      【解决方案2】:

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

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

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

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

      有关泛型的良好介绍,请阅读 Java 教程、Joshua Bloch 的 Effective Java 的免费章节http://java.sun.com/docs/books/effective/generics.pdf 以及许多关于泛型的文章https://www.ibm.com/developerworks/java/

      【讨论】:

        【解决方案3】:

        这样做:

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

        你必须指定哪个你正在为这个类实现的可比较类。仅供参考,最常见的 java 类型(例如 Integer、String、Date 等)是 Comparable。

        【讨论】:

          猜你喜欢
          • 2012-05-07
          • 1970-01-01
          • 1970-01-01
          • 2014-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-17
          相关资源
          最近更新 更多