Приведение к кнопке избыточно - Почему?

Я только что наткнулся на это интересное сообщение от компилятора и не знаю, почему это происходит. Вот случай

Пример 1.

Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);

Пример 2.

findViewById(R.id.someButtonId).setOnClickListener(this);

В первом примере мне нужно преобразовать объект, возвращаемый findViewById , в Button . Во втором примере мне не нужно приводить возвращаемый объект, потому что я не использовал другой объект класса Button . Если я попытаюсь применить его через

((Button)findViewById(R.id.someButtonId)).setOnClickListener(this);

, я получу предупреждение Приведение findViewById (R.id.someButtonId) к Button является избыточным .

Почему это происходит? Я не пытаюсь удалить предупреждение о кастах. Я хочу знать логику этого и почему преобразование типов не требуется, если я не пытаюсь инициализировать другой объект с помощью объекта, возвращенного findViewById .

9
задан sandalone 1 March 2012 в 10:42
поделиться