Java - 检查非空/非空字符串,否则分配默认值

9 浏览
0 Comments

Java - 检查非空/非空字符串,否则分配默认值

我正在尝试简化以下代码。

代码应该执行的基本步骤如下:

  1. 为String分配一个默认值
  2. 运行一个方法
  3. 如果方法返回null/空字符串,则保持String的默认值
  4. 如果方法返回有效字符串,则将String设置为该结果

一个简单的示例可能是:

    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";

但是我调用了相同的方法两次。我希望能够像这样做某事(这是无效的):

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

我希望在同一行中初始化'temp'字符串。这是可能的吗?或者我应该做些什么?

感谢您的建议。

Tim

0