爪哇及&;“错误”;运营者及&;未定义参数类型java.lang.String、java.lang.String";

爪哇及&;“错误”;运营者及&;未定义参数类型java.lang.String、java.lang.String";,java,Java,我在EclipseJava中遇到一个错误 未为参数类型java.lang.String、java.lang.String定义运算符&& if(pro_name.getText() && pro_price.getText() && pro_count.getText()) { } 条件严格要求在java中使用布尔表达式。此处getText()返回String,而在java&中,运算符仅为布尔定义,而不是为字符串定义 这就是eclipse显示此错误的原因。只

我在EclipseJava中遇到一个错误

未为参数类型java.lang.String、java.lang.String定义运算符&&

 if(pro_name.getText() && pro_price.getText() && pro_count.getText())
 {
 }
条件严格要求在java中使用布尔表达式。

此处
getText()
返回
String
,而在java
&
中,运算符仅为
布尔
定义,而不是为
字符串
定义

这就是eclipse显示此错误的原因。

只能对布尔值使用&&(AND)运算符。getText()返回一个字符串,该字符串不是布尔值。为此,需要执行返回布尔值的检查,例如:

if (!pro_name.getText().isEmpty()
    && !pro_price.getText().isEmpty()
    && !pro_count.getText().isEmpty())
也就是说,如果getText()的答案不是null,它将被转换为true。而tjhe和比较将起作用

一个技巧是将一个变量设置为getText()的答案,这样您就可以重用它,而不是稍后(我正在评估)再次获取文本。即:

if(!pro_name.getText().isEmpty() ...)

&&运算符对检查布尔值有效

var pro_name_result = pro_name.getText();
if(!pro_name_result.isEmpty() ...) {
上面的一个是示例一…这不会产生编译错误

isEmpty()
equals()
equalsIgnoreCase()
contains()
=>这些是允许对字符串执行的操作,每个操作都返回布尔值(
true
false


=
检查是否相等,从而返回布尔真值或假值

能否提供有关您试图实现的目标的更多说明。
if(pro_name.getText()=="abc" && pro_price.getText().isEmpty() && pro_count.getText().equals("mango")){   }