저는이 흥미로운 메시지를 컴파일러에서 보았습니다. 왜 그런 일이 일어나는지 모르겠습니다. 여기 경우버튼에 전송하는 것이 중복 됨 - 이유가 무엇입니까?
실시 예 제 1 실시 예에서
Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);
예 2
findViewById(R.id.someButtonId).setOnClickListener(this);
이고, I는 Button
findViewById
에 의해 리턴 된 객체를 전송할 필요가있다. 두 번째 예제에서는 다른 Button
클래스 객체를 사용하지 않았기 때문에 반환 된 객체를 캐스팅 할 필요가 없습니다.
((Button)findViewById(R.id.someButtonId)).setOnClickListener(this);
나는 Casting findViewById(R.id.someButtonId) to Button is redundant
경고 메시지가 표시됩니다.
왜 이런 일이 발생합니까? 나는 캐스트 경고를 제거하려고하지 않습니다. 이의 논리를 알고 을 알고 싶습니다. findViewById
에 의해 반환 된 개체를 사용하여 다른 개체를 초기화하지 않으려면 왜 캐스팅이 필요하지 않은지를 원합니다.
http://stackoverflow.com/questions/3502690/remove-redundant-casts-in-java –
@Samir 나는 그것을 제거하는 방법을 알고 있습니다. :) 나는 그것을 필요로하지 않는다. 나는 ** 캐스팅이 필요없는 이유를 묻습니다. – sandalone
: (경고 메시지가 표시되지 않습니다. – Triode