2017-03-01 7 views
0

ArrayAdapters로 작업하고 있습니다. 나는 수퍼 메소드 (키워드 또는 메소드가이 경우에는 확실하지 않은 이유)가 적용되고 소개되는 이유를 이해하기가 다소 어려워합니다. 또한, 왜 그 중간 생성자 값은 0입니까?왜 어댑터에 수퍼 메서드가 필요합니까?

건배.

public class AttractionAdapter extends ArrayAdapter<Attraction> { 

public AttractionAdapter(Context context, ArrayList<Attraction> attractions) { 
    super(context, 0, attractions); 
} 

답변

0

이는 ArrayAdapter의 필수 사항은 아닙니다. 즉 단순히 자바입니다 : Why call super() in a constructor?

당신 해야 파생 클래스의 생성자에서 전화 super 부모 클래스는 매개 변수가없는 생성자가없는 경우 (그렇지 않으면 호출이 암시 적이며 super() 전화를 방지 할 수 있습니다) . Here 일부 세부 정보.

테스트 용으로 BaseAdapter을 확장하십시오. 생성자에 매개 변수가 없습니다.>super() (실제로는 호출되었지만 작성할 필요는 없습니다)을 호출 할 필요가 없습니다.

0

ArrayAdapter의 생성자이며 새 AttractionAdapter를 만듭니다. 대부분의 시간에 슈퍼를 부를 필요가 없습니다. Java 7 문서에서 super가 무엇을하는지 확인할 수 있습니다. 또한 0은 항목이있는 곳입니다. 어댑터를 "복사하여 붙여 넣기"하여 목록을 만드는 항목입니다. 지금은 어댑터에 표시 할 항목이 없습니다.