2013-07-09 2 views
1

나는 더 많은 이해를 얻기 위해 최근에 많은 Android 프로젝트에서 코드를 읽었습니다. 내가 보는 것들 중 하나는 ArrayList가 인스턴스화 된 두 가지 차이점입니다.왜 List 객체를 상영합니까? Android/Java 구문

여기에 표시된 두 가지 예에 유의하십시오. 왜 일부 예제 1을 사용합니까? 그리고 예제 2보다 왜 그렇게할까요? 그 차이점은 무엇입니까?

필자는 Java에서 업 캐스팅 및 다운 캐스팅의 개념을 이해하고 있으며이 특정 상황에서는 이점을 발견하지 못합니다. arrayList를 만들려고한다면 처음부터 ArrayList 변수에 저장하지 않으시겠습니까?

나는 새로운 ArrayList를 만드는 예제 2를 항상 사용 해왔다. 내가 예와 같이 어떤 사용할 수있는 장점이 무엇인지 이해하지 않는 한 더 프로그래머가 예 1의 방법을 사용하는 것 같습니다

예 1, 변수 부모에 upcasting의 사용

List<String> list = new ArrayList<String>(); 

예 2

ArrayList<String> list = new ArrayList<String>(); 

답변

1

List인터페이스이고 그래서 it..You 가질 수 인스턴스화 ArrayList과 같은 구체적인 구현으로 인스턴스화합니다. 당신이 ArrayList 당신이 ArrayList에 그것을 인스턴스화해야합니다

List 또는 ArrayList 완전히가 ​​사용되는 문맥에 따라 사용 여부를

..


Upcasting는 일반적으로 수행하지만 재사용 가능성의 목적을 위해, 보통 자동적으로 행해진 다.

이 meth 목록을 정렬 OD

public void sort(ArrayList lst); 

당신은 종류의 당신이 LinkedList의 객체를 정렬 할 경우이 method.So 통해 ArrayList에 당신은

지금이 방법을 고려 LinkedList의 매개 변수를 사용하여 다른 방법을 만들어야 할 것입니다 수 있습니다

public void sort(List lst); 
이제 목록 interface..So를 구현하는 클래스의 객체를 전달하여이 방법을 다시 사용할 수

, 당신이 이제 일종의 ArrayList, LinkedList, Stack,,321 0이 동일한 메서드를 사용하여 .. 이제 List 메서드를 구현하는 다른 클래스를 정렬하기 위해이 동일한 메서드를 다시 사용하고 있습니다.

+0

OP 질문과 예제/상황을 실제로 대답하지 않습니다. – Rajesh

+0

이 대답은 이제 ListList 대신 List 변수가 사용되는 이유를 이해할 수 있고 재사용의 이점이 좋은 인수이므로 이해할 수 있습니다. – Kevik

+0

@ Rajesh 좋은 캐치 .. 편집 한 ans – Anirudha

관련 문제