1. ホーム
  2. android

[解決済み] findViewByIdの結果をキャストする必要はない?

2022-04-28 10:11:51

質問

最近、AndroidStudioがいくつかのクラスのキャストを削除するよう促しているのを発見しました。昔はfindViewByIdの結果をキャストしていた記憶があるのですが、今は必要ないのでしょうか。

findViewByIdの結果はViewのままなので、なぜクラスをキャストする必要がないのか知りたいのです。

そのことに触れた文書が見当たらないのですが、どなたか文書を見つけられますか?

解決方法は?

API26から開始します。 findViewById は戻り値の型に推論を使用するので、もはやキャストする必要はありません。

古い定義です。

View findViewById(int id)

新しい定義です。

<T extends View> T findViewById(int id)

ということは、もしあなたの compileSdk が26以上であれば、これを利用できることを意味します :)