java에서 compareTo 메소드에 대해 질문이 있습니다. 따라서이 compareTo 메소드는 CarOwner 객체를 비교하며, 호출 객체가 인수를 비교하여 시간순으로 더 빠르면 -1을 반환합니다. 호출 객체가 인수 1과 비교하여 시간순으로 나중에있는 경우 호출 객체와 인수가 전달 된 인수가 CarOwner 객체가 아닌 경우 (this를 결정하기 위해 instanceof 또는 getClass 사용) 또는 null 인 경우 -1을 반환합니다.java - compareTo 메소드
내가이 코드를 생각해 냈지만 작동하지 않는 것처럼 보이지만 아무도 제안을하지 못했습니까? getYear는()와 속하는 getMonth()을 비교 객체를 반환하는 경우
public int compareTo(Object o)
{
if ((o != null) && (o instanceof CarOwner))
{
CarOwner otherOwner = (CarOwner) o;
if (otherOwner.compareTo(getYear()) > 0)
return -1;
else if (otherOwner.compareTo(getYear()) < 0)
return 1;
else if (otherOwner.equals(getYear()))
if (otherOwner.compareTo(getMonth()) > 0)
return -1;
else if (otherOwner.compareTo(getMonth()) < 0)
return 1;
else if (otherOwner.equals(getMonth()))
return 0;
}
return -1;
}
첫째, 제네릭을 사용하는 것이 좋습니다 . 클래스 선언을'public class CarOwner implements implements comparable'으로 변경하십시오. 그런 다음'compareTo' 메소드를'public int compareTo (CarOwner otherOwner)'로 변경해야합니다. –
Multithreader