私はちょうどコンパイラからのこの興味深いメッセージに出くわしました、なぜ私はそれが起こっているのか分かりません。ここで場合ボタンへのキャストは冗長です - なぜですか?
例最初の例で
Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);
例2
findViewById(R.id.someButtonId).setOnClickListener(this);
あり、Iは、Button
にfindViewById
によって返されたオブジェクトをキャストする必要があります。 2番目の例では、別の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