いくつかの抽象クラスがあり、それぞれが 3 つまたは 4 つの具象クラスをスーパークラス化し、次の形式になっています。
public abstract class TypeOfMapObject extends IrrelevantClass implements Serializable, MapObject, Comparable<MapObject>
{
//irrelevant stuff
@Override
public int compareTo(MapObject m)
{
//specific algorithm for natural ordering
}
}
私のコードの他の場所には、(正しく入力されているArrayList<MapObject>
ことを確認しました) という呼び出しがありtempMapObjectsArray
ます。そのソートは重要ではありません)。ArrayList
Collections.sort(tempMapObjectsArray)
ArrayList
Collections.sort()
(Netbeansで)メッセージをコンパイルして提供するのではありません:
no suitable method found for sort(java.util.ArrayList<Model.MapObject>)
method java.util.Collections.<T>sort(java.util.List<T>,java.util.Comparator<? super T>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
method java.util.Collections.<T>sort(java.util.List<T>) is not applicable
(inferred type does not conform to declared bound(s)
inferred: Model.MapObject
bound(s): java.lang.Comparable<? super Model.MapObject>)
クラスでジェネリックの間違いを定義しているようですが、TypeOfMapObject
ジェネリックを実際に使用したのはこれが初めてで、多かれ少なかれランダムに物事を試す段階に達しました。私はチュートリアルを読んでいますが、これまでのところ、私が間違っていることを単に「クリック」していません。
編集: さまざまな抽象クラスの各サブクラスは、互いに比較可能である必要があります。したがって、抽象クラスなどがある場合TypeofMapObject1
、TypeOfMapObject2
1 のサブクラスを 2 のサブクラスと比較できる必要があります。