アンドロイドアプリを開発するためのUdacityの初心者コースでは、初心者のレッスンの1つに、連鎖方法の簡単な例を紹介します。連鎖方式が機能するためには、最初の戻り値は、そのクラスで以下のメソッドを含んでいなければならないことは何Udacityのインストラクターが言うチェーンメソッドがJavaで動作しようとしないのはなぜですか?
public void submitOrder(View view) {
/**
* Chaining method example given by Udacity.
* stringName variable successfully receives the string value.
*/
EditText inputName = (EditText) findViewById(R.id.name_input);
String stringName = inputName.getText().toString();
/**
* My own example.
* Cannot resolve method 'toString()' error message occurs.
*/
CheckBox checkBox = (CheckBox) findViewById(R.id.check_box);
String hasWhippedCream = checkBox.isChecked().toString();
// What I found by searching on google to make 'toString' work on Boolean
String has = Boolean.toString(checkBox.isChecked());
}
:
は、ここでのコードの抜粋です。上記の例については
、彼女はinputName.getText()
リターンがEditable
オブジェクト&それはそのクラス内toString()
メソッドを持っていることを説明し、このように、この連鎖方法が有効であり、それにtoString()
呼び出し時に文字列を返し、stringNameに保存されます。
Boolean
返信で同じフォーマットのチェーンメソッドを実装しようとすると、混乱が生じます。上記の私自身の例では、戻り値の型がboolean
のcheckBox.isChecked()
と呼びます。さて、Boolean
は、アンドロイドのドキュメントに従ってtoString()
メソッドを持っているので、うまくいくはずですが、エラーメッセージが表示されずに表示されません。
しかし、私はGoogleで見つけたフォーマットはありません作品:
String has = Boolean.toString(checkBox.isChecked())
質問:
- なぜブール戻り値の型の私の連鎖方法が動作しませんされていること?
- 上記のように連鎖方法を作成する際に従う形式の規則はありますか?
Boolean
は上記のようにinputName.getText()
とは異なるチェーニング方法を使用しているのはなぜですか?
'ブール'は 'オブジェクト'です。一方、 'boolean'はプリミティブであり、メソッドはありません。 – SomeJavaGuy
@KevinEscheあなたはコメントとしてではなく答えとしてそれを提出するかもしれません。 – nbrooks
@Kevin Esche私は正しい質問に向かう。私は本当に初心者ですが、検索の権利さえできません:(。ありがとう!:) – lostsoul