Javaジェネリックを使用してprogを作成し、Comparableを実装する必要があります。コードは基本的に 3 人の年齢を比較し、真か偽かを教えてくれるはずです。
クラスに「int age」変数を含める必要があります。
これは私がやったことです:
@SuppressWarnings("rawtypes")
public class Person implements Comparable<Person>{
int age;
//He said you should have ("int age"), but I dont know how to do this without using generics?
public Person(int age)
{
this.age = age;
}
public int compareTo(Person o) {
return compareTo(o);
}
}
そして私の比較クラス:
public class OrderedTrio<T> {
@SuppressWarnings("unused")
public static void main(String[] args)
{
//Create Person object
Person personA = new Person(10);
Person personB = new Person(20);
Person personC = new Person(30);
System.out.println(allEqual(personA, personB, personC));
//Create Employee object
}
//All Equal Method: Returns true if all 3 items are equal according to their equals method
public static boolean allEqual(Person personA, Person personB, Person personC)
{
if(personA.compareTo(personB) ==0 && personB.compareTo(personC)==0) //If A=B, B=C then A=C
return true;
else
return false;
}
//Sort Method: Orders items
//ToString Method: Output format: Item1, 2, 3
}
これらを実行すると、次のエラーが発生します: Exception in thread "main" java.lang.StackOverflowError
エラーはreturn compareTo(o)にあると思いますが、現在のオブジェクトと渡されたオブジェクトを比較する方法がわかりません。
また、「int age」変数を何に使用すればよいかわかりません。int と Person オブジェクトを比較することはできません。