Tôi vừa xem qua thông điệp thú vị này từ trình biên dịch và tôi không biết tại sao nó lại xảy ra. Đây là trường hợpTruyền tới nút là không cần thiết - Tại sao?
Ví dụ 1.
Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);
Ví dụ 2.
findViewById(R.id.someButtonId).setOnClickListener(this);
Trong ví dụ đầu tiên, tôi cần phải cast một đối tượng được trả về bởi findViewById
-Button
. Trong ví dụ thứ hai, tôi không phải truyền đối tượng trả về vì tôi không sử dụng đối tượng lớp Button
khác. Nếu tôi cố gắng truyền thông qua
((Button)findViewById(R.id.someButtonId)).setOnClickListener(this);
Tôi sẽ nhận được cảnh báo Casting findViewById(R.id.someButtonId) to Button is redundant
.
Tại sao điều này lại xảy ra? Tôi không cố gắng loại bỏ cảnh báo truyền. Tôi muốn biết logic đằng sau này và tại sao đúc là không cần thiết nếu tôi không cố gắng khởi tạo một đối tượng khác với đối tượng được trả về bởi findViewById
.
http://stackoverflow.com/questions/3502690/remove-redundant-casts-in-java –
@Samir Tôi biết cách xóa bỏ :). Tôi không cần điều đó. Tôi hỏi ** tại sao ** không cần thiết. – sandalone
:(Tôi không nhận được cảnh báo – Triode