어노테이션을 일관되게 사용하면 끔찍한 human error로 인한 버그들을 방지 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class Bigram { private final char first; private final char second; public Bigram(char first, char second){ this.first = first; this.second = second; } public boolean equals(Bigram b){ return b.first == first && b.second == second; } public int hashCode(){ return 31 * first + second; } public static void main(String[] args) { Set<Bigram> s = new HashSet<>(); for(int i=0; i<10; i++){ for(char ch = 'a'; ch<='z'; ch++){ s.add(new Bigram(ch, ch)); } } System.out.println(s.size()); } } | cs |
1 2 3 4 | @Override public boolean equals(Bigram b){ return b.first == first && b.second == second; } | cs |
1 2 3 | Bigram.java:10: method does not override or implement a method from a supetype @Override ^ | cs |
요약 : super class에 선언된 메서드를 재정의(Override)하는 모든 메서드에 Override 어노테이션을 붙이도록 하면 굉장히 많은 오류를 막을 수 있다.
| [Effective Java]무점검 경고(unchecked warning)를 제거하라 (0) | 2017.04.16 |
|---|---|
| [Effective Java]새 코드에는 무인자 제네릭 자료형을 사용하지 마라 (0) | 2017.04.15 |
| [Effective Java]자료형을 정의할 때 표식 인터페이스를 사용하라 (0) | 2017.03.10 |
| [Effective Java]작명 패턴 대신 어노테이션을 사용하라 (0) | 2017.03.10 |
| [Effective Java]int 상수 대신 enum을 사용하라 (0) | 2017.03.10 |
| [Effective Java]예외를 무시하지 마라 (0) | 2017.03.04 |