인터페이스에서 구현하는 클래스를 인스턴스화하는 방법에 대한 이 질문에 대한 토론을 보았습니다 . 제 경우에는의 인스턴스를 사용하는 매우 작은 프로그램을 Java로 작성하고 있으며 TreeMap
모든 사람들의 의견에 따라 다음과 같이 인스턴스화해야합니다.
Map<X> map = new TreeMap<X>();
내 프로그램 map.pollFirstEntry()
에서 Map
인터페이스 (및 인터페이스 에있는 다른 두 사람) 에서 선언되지 않은 함수를 호출하고 있습니다 Map
. 나는 TreeMap<X>
이 방법을 호출 하는 모든 곳 으로 캐스팅 하여이 작업을 수행했습니다 .
someEntry = ((TreeMap<X>) map).pollFirstEntry();
나는 큰 프로그램에 대해 위에서 설명한 초기화 지침의 장점을 이해하지만이 객체가 다른 방법으로 전달되지 않는 매우 작은 프로그램의 경우 필요하지 않다고 생각합니다. 여전히이 샘플 코드를 작업 응용 프로그램의 일부로 작성하고 있으며 코드가 나쁘거나 어수선하게 보이고 싶지 않습니다. 가장 우아한 해결책은 무엇입니까?
편집 : 특정 기능을 적용하는 대신 광범위한 우수한 코딩 방법에 더 관심이 있음을 지적하고 싶습니다 TreeMap
. 일부 답변이 이미 지적 했으므로 (그리고 첫 번째 답변으로 답변 한 것으로 표시됨) 기능을 잃지 않고 가능한 더 높은 추상화 수준을 사용해야합니다.