Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果两个选项之一不为空,如何使变量进行选择_Java - Fatal编程技术网

Java 如果两个选项之一不为空,如何使变量进行选择

Java 如果两个选项之一不为空,如何使变量进行选择,java,Java,在其他语言中,我知道我可以做到以下几点。但是我在理解为什么我不能这样做时遇到了困难。我的错误是: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String 使用三元运算符: String three = (one !=

在其他语言中,我知道我可以做到以下几点。但是我在理解为什么我不能这样做时遇到了困难。我的错误是:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String
使用三元运算符:

String three = (one != null) ? one : two;

因为Java语法不允许这样做

在Java中,
|
是一个运算符,可应用于两个
布尔操作数。操作数是字符串对象

要实现您想要的,您可以使用
if
语句,
或者所谓的条件三元运算符
?:

详情如下:


第二个链接还包含对
|
运算符的描述。

您应该使用if语句或三元运算符。在Java 8中,您可以使用:


这会有效吗?我应该试试这个@arshajii@DeepanshuBedi是的,会的。好主意。但是,从可读性的角度来看,这是一个多么混乱的局面,IMHO:)不过,对于这个新的Java8特性,+1。@peter.petrov,我不同意。就我个人而言,我发现这和三元运算符版本一样可读(如果不是更可读的话)。谢谢你的投票!问题是我有一些例外。所以现在不给你评分了P我正在想办法
String three = (one != null) ? one : two;
String three = Optional.ofNullable(one).orElse(two);