Java

#java

#java

Вопрос:

  if(pro_name.getText() amp;amp; pro_price.getText() amp;amp; pro_count.getText())
 {
 }
  

Я получаю ошибку в eclipse java

Оператор amp;amp; не определен для типов аргументов java.lang.Строка, java.lang.Строка

Комментарии:

1. Можете ли вы предоставить более подробное описание того, чего вы пытаетесь достичь.

Ответ №1:

 if (!pro_name.getText().isEmpty()
    amp;amp; !pro_price.getText().isEmpty()
    amp;amp; !pro_count.getText().isEmpty())
  

Условия строго требуют логического выражения в Java.

Ответ №2:

amp; Оператор amp; допустим для проверки логических значений

 if(pro_name.getText()=="abc" amp;amp; pro_price.getText().isEmpty() amp;amp; pro_count.getText().equals("mango")){   }
  

приведенный выше пример одного…это не приведет к ошибкам компиляции.

isEmpty() , equals() , equalsIgnoreCase() contains() ==> это допустимые операции со строками, каждая из них возвращает логические значения ( true или false )

== это проверяет равенство и, следовательно, возвращает логическое значение true или false

Ответ №3:

здесь getText() возвращается String , а в Java amp;amp; оператор определен только для boolean , а не для String .

Вот почему eclipse показывает эту ошибку.

Ответ №4:

Вы можете использовать оператор amp;amp; (AND) только для логических значений. .getText() возвращает строку, которая не является логическим значением. Для этого вам нужно выполнить проверку, которая возвращает логическое значение, например:

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

То есть, если ответ из getText() не равен нулю, он будет переведен в true. и сравнение tjhe amp;amp; будет работать.

Совет заключается в том, чтобы установить переменную в ответ из getText(), чтобы вы могли использовать его повторно, вместо того, чтобы позже (я предполагаю) вы снова получили текст. Т. е.:

 var pro_name_result = pro_name.getText();
if(!pro_name_result.isEmpty() ...) {