2016-09-23 9 views
0

同じ型の2つのオブジェクトにはそれぞれ、intValueというint属性があります。 Comparableインタフェースを使用して、intValueのint値に基づいてこれら2つのオブジェクトを比較するにはどうすればよいですか?Java同等のインタフェース:compareTo int属性

public int compareTo(myObject other) { 
    return (this.intValue).compareTo(other.intValue); 
    } 

firstObject.compareTo(secondObject); 

これは、最初にあなたのmyObjectクラスがComparableインタフェース実装していることを確認して、エラー

error: int cannot be dereferenced 
+0

のJavaのどのバージョンあなたを行いますつかいます? – talex

+0

正確なエラーを記入してください。 – talex

+0

バージョン8.正確なエラーは疑問です。 –

答えて

1

を生成します:あなたはDEDなら

public class myObject implements Comparable<myObject> 

compareToと接続詞でInteger.valueOfを使用して

public int compareTo(myObject other) { 
    return Integer.compare(this.intValue, other.intValue); 
} 

これは論理的に同じである:プリミティブint値を使用してcompareToによって返された値をucing、あなたはInteger.compareメソッドを使用することができます

public int compareTo(myObject other) { 
    return Integer.valueOf(this.intValue).compareTo(Integer.valueOf(other.intValue)); 
} 
+0

私はこのメソッドをすでに試して、エラーを返します:エラー:myObjectは抽象メソッドではなく、ComparableのabstractメソッドcompareTo(Object)をオーバーライドしません –

+2

'myObject'クラスが' Comparable 'インターフェイスを実装していることを確認する必要があります。つまり、 'public class myObject implements comparable ' –

+0

このコメントは解決策です。私はの部分を含んでいませんでした。あなたの答えを編集できたら、それを受け入れることができます。 –