2011-11-13 6 views
0

인터페이스의 인스턴스를 만들 수 없습니다.Java에서 인스턴스 반환

하지만 Java API에서 Arrays.asList(Object[] a)은 왜 발생합니까? List (List은 인터페이스 임)을 반환합니까?

감사합니다.

답변

2

일반적으로 Java 프로그래밍 및 OOO 프로그래밍에서는 객체를 사용하는 방법 (객체의 인터페이스)을 정의 할 수 있으므로 라이브러리 구현 자만이 실제로 작동하는 방식에 대한 세부적인 내용을 염려해야합니다. 따라서 클래스 자체를 반환하지 않는 것이 좋은 습관 인 이유는 인터페이스 뿐이며, 더 나은 유지 보수 기능 외에도 응용 프로그램 테스트를 코딩 할 때 모의 객체 또는 스텁 객체를 사용할 수 있습니다.

자바는 특히 당신이 비행 중에 인터페이스 구현을 만들자. 즉 당신은 다음과 같이 할 수있다.

 
return new List() { 

    boolean add() {...} 
    void addAll {...} 
    ... 
} 

이것은 List와 같은 복잡한 인터페이스에서는 과도하지만 실제로는 더 작은 인터페이스에서는 매우 편리하다.

3

인터페이스를 구현하는 클래스의 인스턴스를 만듭니다.

클래스가 무엇인지 알 수 없습니다. 매주 화요일마다 다른 수업을 사용할 수도 있습니다 (그렇지 않습니다).
인터페이스를 통해 클래스를 사용하기 만하면됩니다.

+0

즉, ArrayList test = Arrays.asList (someVector)와 같은 작업을 수행 할 수 있습니까? –

+1

아뇨,'Arrays.asList'는 아마도'ArrayList'가 아닌 다른 구현을 리턴 할 것이기 때문입니다. – SLaks

관련 문제