2012-12-14 3 views
0

제 질문은 간단합니다. 빌딩 차트 작성자를 만들려고 노력 중입니다. 동료 프로그래머가 작성한 프로그램에 따라 차트 데이터가 개체로 채워집니다. 따라서 개체에는 항상 특정 메서드가 있는지 확인하기 위해 ObjectInterface이라는 인터페이스를 사용했습니다.목록에서 매개 변수로 인터페이스 사용

난 것이 가능 이와 같은 추가 할 ArrayList에에 (내가 어떤 유형의 모르는) 이러한 개체를 추가하려면 내 질문은

다음 개체 유형이

ArrayList<ObjectInterface> data = new ArrayList<ObjectInterface>(); 
ObjectType Test = new ObjectType("Test"); 
data.add(test); 

이 예제에 ObjectInterface

을 구현하는 객체가 합법적입니까?

답변

2

예, 귀하의 예는 완벽합니다.

게다가 나는 꽤 좋은 디자인이라고 생각합니다. @duffymo에 의해 제안 하나 개 더 정제는 왼쪽에 List을 사용하는 것입니다

List<ObjectInterface> data = new ArrayList<ObjectInterface>(); 

이 방법 data는 추상적 목록 인터페이스의 관점에서 선언, 그리고 구체적인리스트의 구현의 관점에서.

+0

나는 LHS에 List 를 선호하지만 그게 나입니다. – duffymo

+0

@NPE 답장을 보내 주셔서 감사합니다 :) –

+0

@duffymo : 좋은 지적, 고마워요. – NPE

2

예, 유효합니다. 하위 유형을 ObjectInterface (예 : ObjectType)까지 ArrayList<ObjectInterface>에 추가 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다 –

3

ObjectType이 하위 유형 (또는 구현)이 ObjectInterface 인 경우 올바른 것입니다. Java 컴파일러가 없습니까? 그것은 당신의 모든 "당신의"합법적 인 질문 유형입니다;)

+0

답변 해 주셔서 감사합니다. :) –

관련 문제