1. ホーム
  2. java

[解決済み] Java - Null/Emptyでないことを確認し、デフォルト値を割り当てる

2023-07-05 15:51:40

質問

以下のコードを単純化しようとしています。

このコードが実行すべき基本的な手順は以下の通りです。

  1. 文字列にデフォルト値を割り当てる
  2. メソッドを実行する
  3. メソッドが null/empty 文字列を返す場合、文字列をデフォルトとして残します。
  4. メソッドが有効な文字列を返した場合、この結果に文字列を設定します。

簡単な例では、次のようになります。

    String temp = System.getProperty("XYZ");
    String result = "default";
    if(temp != null && !temp.isEmpty()){
        result = temp;
    }

三項演算子を使って、もう一つ作ってみました。

    String temp;
    String result = isNotNullOrEmpty(temp = System.getProperty("XYZ")) ? temp : "default";

isNotNullOrEmpty() メソッド

 private static boolean isNotNullOrEmpty(String str){
    return (str != null && !str.isEmpty());
}

これをすべてインラインで行うことは可能なのでしょうか?このようなことができるのは知っています。

String result = isNotNullOrEmpty(System.getProperty("XYZ")) ? System.getProperty("XYZ") : "default";

しかし、私は同じメソッドを2回呼び出しています。私はこのようなことをするようなものです(これはうまくいきません)。

String result = isNotNullOrEmpty(String temp = System.getProperty("XYZ")) ? temp : "default";

同じ行の中で'temp'Stringを初期化したいのですが、可能でしょうか?これは可能ですか?または、どうすればよいのでしょうか?

ご指摘ありがとうございます。

ティム

どのように解決するのですか?

私は質問が本当に古いことを知っているが、ジェネリックスを使用すると、すべての型のために動作する、より一般化されたメソッドを追加することができます。

public static <T> T getValueOrDefault(T value, T defaultValue) {
    return value == null ? defaultValue : value;
}