Java 可选:not null 和方法 OR 默认值

chr*_*s01 0 java

我如何使用可选选项使其更短/更优雅?

ZonedDateTime zdt = getMyTime ();   // returns ZonedDateTime or null
String zdtstr = "";
if (zdt != null)
{
    zdtstr = zdt.format (myformatter);
}
else
{
    zdtstr = "???";
}
Run Code Online (Sandbox Code Playgroud)

我尝试了Optional.isPresentorElse,但它没有返回结果(我的示例中需要的字符串)。

Xii*_*ref 5

您可以只使用三元运算符:

ZonedDateTime zdt = getMyTime();
String zdtstr = (zdt != null) ? zdt.format(myformatter) : "???";
Run Code Online (Sandbox Code Playgroud)