ジェネリック型のインターフェースを実装するにはどうすればよいですか?

ordanj

Telemeterクラスを実装するクラスTelemeterTesterを作成しようとしています。テレメータはコンパレータを拡張します。このランタイムエラーが発生し続けます...

TelemeterTester.java:12: error: cannot find symbol
  return e1.compareTo(e2);
           ^
  symbol:   method compareTo(Comparable)
  location: variable e1 of type Comparable
  where Comparable is a type-variable:
  Comparable extends Object declared in class TelemeterTester
1 error  

これがテレメーターインターフェースのコードです

/** @param <E> the type on which distance and order are defined
 *
 */
 public interface Telemeter<E> extends Comparator<E> {

   /**
    * Returns the distance between e1 and e2.
    *
    * @param e1 the first object
    * @param e2 the second object
    * @return the distance between e1 and e2
    *
    */
   double distance(E e1, E e2);
 }

Telemeterを実装するTelemeterTesterクラスのコードは次のとおりです

public class TelemeterTester<Comparable> implements Telemeter<Comparable>{

   private TelemeterTester() {}

   public double distance(Comparable e1, Comparable e2) {
      return 0;
   }

   public int compare(Comparable e1, Comparable e2) {

      return e1.compareTo(e2);
   }

}

誰かが私が間違っていることを私に説明できますか?私はジェネリックスをよく理解しておらず、このエラーのバリエーションに数時間立ち往生しています。

Shail016

TelemeterTesterは次のように定義する必要があります。

  public class TelemeterTester<E extends Comparable<E>> implements Telemeter<E> {
    private TelemeterTester() {
    }

    public int compare(E o1, E o2) {
        return o1.compareTo(o2);
    }

    @Override
    public double distance(E e1, E e2) {
        return 0;
    }
}

と呼ばれる:

   TelemeterTester<Integer> t = new TelemeterTester<Integer>();
   System.out.println(t.compare(2, 2));

整数型の実装を覚えておいてください Comparable<Integer>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

分類Dev

Kotlinにジェネリックインターフェイスを持たずに、実装でジェネリック型を継承するにはどうすればよいですか?

分類Dev

実装クラスからジェネリックインターフェイスの型パラメーターを取得するにはどうすればよいですか?

分類Dev

ジェネリック型のみで実装されるようにインターフェイスを制限するにはどうすればよいですか?

分類Dev

インターフェイスでオプションのジェネリック型を宣言するにはどうすればよいですか?

分類Dev

それを実装する具象型へのインターフェースによって表される「ジェネリック」オブジェクトのリストからキャストへの(List <?>)とはどういう意味ですか?

分類Dev

ジェネリックインターフェイスの制約があるジェネリッククラスを実装するにはどうすればよいですか?

分類Dev

Typescriptジェネリック型を使用するインターフェイスを拡張するにはどうすればよいですか?

分類Dev

ジェネリックインターフェイスのインターフェイス実装を取得するにはどうすればよいですか?

分類Dev

インターフェイスをC#ジェネリック型制約として使用するにはどうすればよいですか?

分類Dev

異なるジェネリックで同じインターフェースを実装することを禁止する新しいDartの変更を回避するにはどうすればよいですか?

分類Dev

List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

分類Dev

ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

分類Dev

ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

分類Dev

基礎となるタイプのジェネリックインターフェイスを取得するにはどうすればよいですか?

分類Dev

kotlinpoetを使用してジェネリックインターフェイスを実装するクラスを拡張するクラスを生成するにはどうすればよいですか?

分類Dev

デコレータを使用してクラスジェネリック型の実行時型を取得するにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

分類Dev

ジェネリックインターフェイスのタイプを別のジェネリックインターフェイスにバインドするにはどうすればよいですか?

分類Dev

Flowのジェネリック文字列でErrorインターフェースを拡張するにはどうすればよいですか?

分類Dev

この例では、同じインターフェイスから継承するさまざまなオブジェクトをジェネリック型で1つの変数に格納するにはどうすればよいですか?

分類Dev

戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

分類Dev

インターフェイスの匿名実装を作成するにはどうすればよいですか?

分類Dev

列挙型に対してジェネリックである必要があるクラスを使用して、ジェネリックなインターフェイスを拡張するにはどうすればよいですか?

分類Dev

インターフェイスがJavaで実装しているクラス型を参照するにはどうすればよいですか?

分類Dev

ジェネリックTypeScriptインターフェイスを別のジェネリックインターフェイスから拡張するにはどうすればよいですか?

分類Dev

フィールドの関数型インターフェースの実装を作成するにはどうすればよいですか?

分類Dev

JavaでNumberクラスを拡張し、別のクラスで実行できるように、ジェネリックインターフェイスを正しく制限するにはどうすればよいですか?

Related 関連記事

  1. 1

    ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

  2. 2

    Kotlinにジェネリックインターフェイスを持たずに、実装でジェネリック型を継承するにはどうすればよいですか?

  3. 3

    実装クラスからジェネリックインターフェイスの型パラメーターを取得するにはどうすればよいですか?

  4. 4

    ジェネリック型のみで実装されるようにインターフェイスを制限するにはどうすればよいですか?

  5. 5

    インターフェイスでオプションのジェネリック型を宣言するにはどうすればよいですか?

  6. 6

    それを実装する具象型へのインターフェースによって表される「ジェネリック」オブジェクトのリストからキャストへの(List <?>)とはどういう意味ですか?

  7. 7

    ジェネリックインターフェイスの制約があるジェネリッククラスを実装するにはどうすればよいですか?

  8. 8

    Typescriptジェネリック型を使用するインターフェイスを拡張するにはどうすればよいですか?

  9. 9

    ジェネリックインターフェイスのインターフェイス実装を取得するにはどうすればよいですか?

  10. 10

    インターフェイスをC#ジェネリック型制約として使用するにはどうすればよいですか?

  11. 11

    異なるジェネリックで同じインターフェースを実装することを禁止する新しいDartの変更を回避するにはどうすればよいですか?

  12. 12

    List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

  13. 13

    ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

  14. 14

    ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

  15. 15

    基礎となるタイプのジェネリックインターフェイスを取得するにはどうすればよいですか?

  16. 16

    kotlinpoetを使用してジェネリックインターフェイスを実装するクラスを拡張するクラスを生成するにはどうすればよいですか?

  17. 17

    デコレータを使用してクラスジェネリック型の実行時型を取得するにはどうすればよいですか?

  18. 18

    インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

  19. 19

    ジェネリックインターフェイスのタイプを別のジェネリックインターフェイスにバインドするにはどうすればよいですか?

  20. 20

    Flowのジェネリック文字列でErrorインターフェースを拡張するにはどうすればよいですか?

  21. 21

    この例では、同じインターフェイスから継承するさまざまなオブジェクトをジェネリック型で1つの変数に格納するにはどうすればよいですか?

  22. 22

    戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

  23. 23

    インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

  24. 24

    インターフェイスの匿名実装を作成するにはどうすればよいですか?

  25. 25

    列挙型に対してジェネリックである必要があるクラスを使用して、ジェネリックなインターフェイスを拡張するにはどうすればよいですか?

  26. 26

    インターフェイスがJavaで実装しているクラス型を参照するにはどうすればよいですか?

  27. 27

    ジェネリックTypeScriptインターフェイスを別のジェネリックインターフェイスから拡張するにはどうすればよいですか?

  28. 28

    フィールドの関数型インターフェースの実装を作成するにはどうすればよいですか?

  29. 29

    JavaでNumberクラスを拡張し、別のクラスで実行できるように、ジェネリックインターフェイスを正しく制限するにはどうすればよいですか?

ホットタグ

アーカイブ