다음 코드를 고려하십시오.
test = (Button) findViewById(R.id.testButton);
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Do something
}
}
그래서 나는 new View.OnClickListener(){}
익명의 클래스를 선언 하기 때문에 혼란 스럽지만 클래스를 인수로 사용할 수 없어야합니까? 나는 객체 만이 그렇게 할 수 있다고 생각했는데 왜 클래스에 대한 익명의 클래스 강조가 인수로 사용됩니까? 또한 클래스가 인수로 사용되는 경우 메서드가 어떻게 호출됩니까?
실제로는 클래스가 아니라 인수로 전달되는 객체입니다. 객체new View.OnClickListener()
를 만드는 문 입니다. 오해를 불러 일으킬 수있는 것은 메서드를 제자리에 정의하고 있다는 것입니다.하지만 추상 클래스이고 메서드에 대한 구현을 제공하지 않기 때문에이를 수행해야합니다 .View.OnClickListener
onClick()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다