AndroidでfindViewByIdを使うにはタイプ変換が必要ですか?
1111 ワード
接触コントロールから、Android開発者が最もよく知っている行のコードは、
Casting 'findViewById(R.id.button)' to 'Button' is redundant less... (Ctrl+F1) This inspection reports unnecessary cast expressions.
つまり、このようなタイプ変換は必要ありません.タイプ変換は必要ない以上、findView ById()メソッドで返されるViewはすでに必要なタイプです.Ctrl+クリックすると、次のように見えます.
戻るオブジェクトはすでに具体的で、Viewから継承されたオブジェクト、例えばButtonは、直接Viewに戻るのではなく、Viewから継承されていますが、学習を始めたばかりの頃、多くのチュートリアルでは、このようなカッコを付けてタイプ変換する書き方がありましたが、実はAPIバージョンの理由です.API 26からfindViewById()メソッドはすでに上記のように、必要なタイプを自動的に返してAPI 25のソースコードを調べるので、簡単に見ることができます.
ソースを調べるサイトもおすすめ:Android OS
Button button = (Button) findViewById(R.id.button);
私が初めてこの行のコードを書いたとき、Javaを習ったばかりで、まだ何日も経っていないので、どういう意味なのか分からないが、本について叩くだけで、かっこで強制タイプ変換だと知った.しかしある日、ふと自分のコードを見て、灰色の波線を打ってヒントを与えた.Casting 'findViewById(R.id.button)' to 'Button' is redundant less... (Ctrl+F1) This inspection reports unnecessary cast expressions.
つまり、このようなタイプ変換は必要ありません.タイプ変換は必要ない以上、findView ById()メソッドで返されるViewはすでに必要なタイプです.Ctrl+クリックすると、次のように見えます.
@SuppressWarnings("TypeParameterUnusedInFormals")
@Override
public T findViewById(@IdRes int id) {
return getDelegate().findViewById(id);
}
戻るオブジェクトはすでに具体的で、Viewから継承されたオブジェクト、例えばButtonは、直接Viewに戻るのではなく、Viewから継承されていますが、学習を始めたばかりの頃、多くのチュートリアルでは、このようなカッコを付けてタイプ変換する書き方がありましたが、実はAPIバージョンの理由です.API 26からfindViewById()メソッドはすでに上記のように、必要なタイプを自動的に返してAPI 25のソースコードを調べるので、簡単に見ることができます.
@Override
public View findViewById(@IdRes int id) {
return getDelegate().findViewById(id);
}
ソースを調べるサイトもおすすめ:Android OS