읽음 유효 자바 가능한 경우 반환 유형으로 인터페이스 사용을 강조합니다. 논쟁을 확장하면서 나는 다음과 같은 방법들 중 어느 것이 좋은 관행으로 간주 되었는가 궁금했다.형식 인수에 대해 인터페이스를 사용해야합니까?
옵션 1 :
Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>(); // Interface 'Set' declared in type
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}
옵션 2 :
Map<Integer, Set<Integer>> map = new HashMap<Integer, HashSet<Integer>>(); // Class 'HashSet' declared in type.
for (int v = 0; v < graph.getNumberOfVertices(); v++) {
map.put(v, new HashSet<Integer>());
}
메소드에서지도를 반환하면 인터페이스 선호 규칙이 계속 적용됩니다. – Kayaman
글쎄, 두 번째 컴파일하지 않습니다 ... –
전 더 일반적이므로 그렇게하지 않는 좋은 이유가 없다면, 나는 그 접근 방식을 선호합니다. – assylias