2017-10-04 5 views
0

私は、Javaでジェネリックスと標準OOPの原則を扱う私の最初のプログラムの1つを書いていますが、Integer型を扱うときは少し問題があります。整数型が期待通りに動作しない(Java)

私は、Integersがintと同じようにcompareTo(Integer anotherInteger)という名前のメソッドを持つことが予想されることに気付きました。

しかし、プログラムでこのメソッドを実装しようとすると、問題が発生しました。方法のcompareTo(整数) 場所:整数型変数であるタイプの変数x整数 :

エラーシンボル シンボル見つけることができない整数は、本質的にBinarySearchTree

で宣言されたオブジェクトを拡張し、Iはx.comporeToを有します(y)x & yはInteger型ですが、Integer(x)型の変数に対してcompareToメソッドが見つかりません。どのようにこれを解決するかわからない、どんな助けも高く評価されるだろう。

おかげ

編集:私は私の問題を強調するために、以下の小さな例を提供してきました。

public class IntgS<Integer> 
    { 
      Intg<Integer> z = new Intg(3); 
      Intg<Integer> y = new Intg(2); 
      int w = (z.getX()).compareTo(y.getX()); 

      public class Intg<Integer> 
      { 
        private Integer x; 
        public Intg(Integer x) 
        { 
          this.x = x; 
        } 

        public Integer getX() 
        { 
          return x; 
        } 
      } 
    } 

はこれを発現同じエラーを与えるなど、または問題を解決するためにどのように、私は整数をシャドウイングしています信じていますが、私はやって周りを取得する方法がわからないという整数型変数z.getX() .compareTo(Integer)メソッドはありません。

+4

treeBuilder.javaのソースコードを提供してください。 –

+4

関連するコードを投稿してください – rafid059

+4

エラーメッセージのみを提供していますが、コードは提供していないエラーについてはお手伝いできません。 – scottb

答えて

6

BinarySearchTreeには、標準タイプjava.lang.IntegerをシャープにするタイプのパラメータIntegerがあります。

+1

Haを読み出す時間。たぶん質問は... "このエラーをどうやって読んでいいの?" – shinjw

+0

ヘンリーの方に感謝します。上記で提供したコードの断片とシャドウイングの関連性についてさらに説明することができます。 – byrnesj1

+0

両方のクラスでtypeパラメータを削除するだけです。 (つまり、 'class IntgS {...}') – Henry

関連する問題