728x90
반응형
알파벳, 숫자, 연대 같이 순서가 명확한 값 클래스를 작성한다면 반드시 Comparable
인터페이스를 구현하자.
이 객체와 주어진 객체의 순서를 비교한다. 이 객체가 주어진 객체보다 작으면 음의 정수를,
같으면 0을, 크면 양의 정수를 반환한다. 이 객체와 비교할 수 없는 타입의 객체가 주어지면
ClassCastException
을 던진다.
public class Item14 implements Comparable<Item14> {
private Integer integer;
public Item14(Integer integer) {
this.integer = integer;
}
@Override
public int compareTo(Item14 o) {
return Integer.compare(integer, o.integer);
}
public static void main(String[] args) {
Item14 item = new Item14(3);
Item14 item2 = new Item14(1);
Item14 item3 = new Item14(5);
Item14 item4 = new Item14(3);
System.out.println(item.compareTo(item2)); // 1
System.out.println(item.compareTo(item3)); // -1
System.out.println(item.compareTo(item4)); // 0
}
}
참고 자료
Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=
728x90
반응형
'Java' 카테고리의 다른 글
[Effective Java] 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라. (0) | 2022.05.24 |
---|---|
[Effective Java] 아이템 15. 클래스와 맴버의 접근 권한을 최소화하라. (0) | 2022.05.24 |
[Effective Java] 아이템 13. clone 재정의는 주의해서 진행하라. (0) | 2022.05.24 |
[Effective Java] 아이템 10. equals는 일반 규약을 지켜 재정의하라. (0) | 2022.05.24 |
[Effective Java] 아이템 9. try-finally보다는 try-with-resources를 사용하라. (0) | 2022.05.24 |