public class Dog {
int size;
String name;
//Deploying a constructor
Dog(String name, int size){
this.name=name;
this.size=size;
}
//Deploying toString() for printing
public String toString(){
return name+"/"+size;
}
//Deploying compareTo() method and overriding it for int value
public int compareTo(Object s){
return (this.size-((Dog)s).size);
}
}
import java.util.Arrays;
public class CompareTo {
public static void main(String[] args){
Dog[] obj=new Dog[5];
obj[0]=new Dog("Alpha",332);
obj[1]=new Dog("Romeo",32);
obj[2]=new Dog("Charlie",332);
obj[3]=new Dog("Tyson",632);
obj[4]=new Dog("Roger",532);
//Without Sorting taking the output
for(Object x:obj){
System.out.println(x);
}
//With Sorting taking the output
try{Arrays.sort(obj);
for(Object x: obj){
System.out.println(x);
}
}catch(Exception e){
System.out.println("Something is wrong in this line"+e);
}
}
}
Output-Alpha/332
Romeo/32
Charlie/332
Osama/632
Laden/532
Something is wrong in this linejava.lang.ClassCastException: Dog cannot be cast to java.lang.Comparable
こんにちは、犬のサイズに基づいて Dog オブジェクトをショートさせようとしていました。スーパーモストクラスのオブジェクト x を Dog クラスにダウンキャストしましたが、実行時に Java が try および catch ブロックを実行して、Dog を java.lang.Comparable にキャストできないと言っている理由がわかりません