[解決済み] booleanを返すJavaメソッドの命名規則
質問
私は他の言語ではメソッド名や関数名の最後にクエスチョンマークを使うのが好きです。Javaは私にこれをさせません。回避策として、Javaでブール値を返すメソッドに他の名前を付けるにはどうすればよいですか?以下のように
is
,
has
,
should
,
can
をメソッドの前に置くのは、場合によっては問題ないように聞こえます。このようなメソッドに名前を付けるより良い方法はありますか?
例えば、createFreshSnapshotのような?
どのように解決するのですか?
名前で質問するのが定石です。
JDKにあるいくつかの例を紹介します。
isEmpty()
hasChildren()
こうすることで、名前の最後にクエスチョンマークが付くように読み取れます。
コレクションは空ですか?
このNodeは子を持っていますか?
そして、次に
true
は「はい」を意味し
false
は「いいえ」を意味します。
あるいは、アサーションのように読むこともできます。
コレクションは空です。
ノードが子を持っている
注意してください。
時には、メソッドに次のような名前を付けたいかもしれません。
createFreshSnapshot?
. クエスチョンマークがなければ、この名前は、スナップショットが必要であるかどうかを確認する代わりに、メソッドがスナップショットを作成する必要があることを意味します。
この場合、実際に何を求めているのかを再考する必要があります。 次のようなものです。
isSnapshotExpired
のようなものは、より良い名前であり、メソッドが呼び出されたときに何を教えてくれるかを伝えてくれます。このようなパターンに従うことで、より多くの関数を純粋で副作用のないものに保つことができます。
もしあなたが
Google検索
に対して
isEmpty()
をJava APIで検索すると、たくさんの結果が得られます。
関連
-
Javaジェネリックを1つの記事で
-
シェルコマンドやスクリプトのJavaコール
-
Java:未解決コンパイル問題の解決方法
-
Java基礎 - マッピングとQ/A
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] Java 8 Iterable.forEach() vs foreachループ
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
Uncaught ReferenceError: は定義されていません。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
Javaジェネリックを1つの記事で
-
配列定数は初期化子でのみ使用可能です。
-
アノテーション「@Retention」の役割
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
テストが空であるかどうかを判断するためのオプションの処理
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題