私は、Javaの初心者です、とのコード行に遭遇している:それはカッコ内にあるとき(Button)
は(ボタン)とはどういう意味ですか?
Button orderButton = (Button)findViewById(R.id.order);
何を意味するのでしょうか?
このように内部に置く用語は何ですか?
私は、Javaの初心者です、とのコード行に遭遇している:それはカッコ内にあるとき(Button)
は(ボタン)とはどういう意味ですか?
Button orderButton = (Button)findViewById(R.id.order);
何を意味するのでしょうか?
このように内部に置く用語は何ですか?
これは型キャストです。結果をtypeof(Button)にキャストしています
タイプキャスティングはいつ必要ですか?この行がそれを使わなかったら何が起こるだろうか? – user1389811
他の回答を読む☺ –
@ user1389811:これは例で最もよく説明されています: 'Animal'と派生型' Dog'があり、 'Animal'型を返す関数を持っていますが、あなたは*知っています*何らかの理由で)戻り値が実際に 'Dog'のインスタンスであり、結果を格納する変数が' Dog'型の場合、型キャストが必要です。 'Dog d =(Dog)getTheAnimalキャストなしで祖先型( 'Animal')変数に子孫型(' 'Dog'')を割り当てることができるので、逆は真です:' Animal a = getADog(); ' –
typecastです。 findViewById
はView
オブジェクトを返しますが、Button
オブジェクトが必要です。 (Button)
は、ビューをボタンにキャストします。
これは、タイプキャストと呼ばれます。findViewById(R.id.order);
によって返されたオブジェクトは、Button
から拡張される可能性があります。コードを書いた人は、その関数呼び出しによって返されたオブジェクトは実際にはButton
のインスタンスであると考えているので、関数の戻り値をButton
のインスタンスに型キャストしています。
実行環境とIDEがfindViewById(R.id.order)によって返されているオブジェクトのタイプを知ることを可能にすることです。
findViewById(R.id.order)は、特定のタイプではなく汎用オブジェクトを返します。 Buttonにはオブジェクトが参照する項目に関連するメソッドが含まれているので、新しい変数orderButtonが正しいメソッドにアクセスできるように型を伝える必要があります。
これが答えを選ぶ簡単なサンプル
http://www.java-samples.com/showtutorial.php?tutorialid=1170
です。 –