Ошибка типа Void в операторе if, когда я добавляю "&&" - PullRequest
0 голосов
/ 01 сентября 2018

Я пишу это:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    Float result = 100f;

    if (jCheckBox1.isSelected() == true) {
    Float one = Float.valueOf(jTextField1.getText());
    result = result / one;


} else {}

и работает нормально.

Но когда я добавляю "&& jTextField1.setDragEnabled(true)" в оператор if, я получаю ошибку типа void.

Почему это? И что я могу сделать? Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Я предполагаю, что ваш код будет выглядеть так с добавленной проверкой:

if (jCheckBox1.isSelected() == true && jTextField1.setDragEnabled(true) == true) {
    Float one = Float.valueOf(jTextField1.getText());
    result = result / one;


} else {}

Проблема в том, что метод setDragEnabled (), вероятно, не возвращает объект логического типа, поэтому вторая проверка просто не влияет на компилятор.

Таким образом, возможное решение может быть

  1. Настройте проверку (в соответствии с той логикой, которая необходима в вашем случае).
  2. Настройте метод setDragEnabled (), чтобы он возвращал логическое значение (т. Е. Истинно в случай, когда текстовое поле может быть установлено перетаскиваемым успешно и ложь в противном случае)
0 голосов
/ 01 сентября 2018

Любой метод set никогда не возвращает логический результат. В идеале каждый setter метод возвращает void, недопустимый тип внутри, если условие в java.

...