无法使用void类型(Java)(s!= null)

3

我有这段代码,当我在//error注释处加上&&时,它会出现void类型不允许的错误。当我删除&&时,就不会出现此错误。

public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == ok) {
    Contact nweC = null;


    String vnm = tfVoor.getText();
    String anm = tfAchter.getText();
    String em = tfEmail.getText();
    if (em.trim().length() > 0 && !hetBoek.heeftContact(em)) {
        nweC = new Contact(vnm, anm, em);
    } else {
        tfEmail.setText("");
        JOptionPane.showMessageDialog(null, "Onjuist emailadres", "Mislukt", JOptionPane.PLAIN_MESSAGE);
    }
    //error if (nweC != null && hetBoek.voegContactToe(nweC)) {
                JOptionPane.showMessageDialog(null, "Toevoegen gelukt", "Succes", JOptionPane.PLAIN_MESSAGE);
    }
} else if (ae.getSource() == cancel) {
    tfVoor.setText("");
    tfAchter.setText("");
    tfEmail.setText("");
} else if (ae.getSource() == toon) {
    String s = hetBoek.toString();
    JOptionPane.showMessageDialog(null, s, "Druk op OK",
    JOptionPane.PLAIN_MESSAGE);
}
}

希望有人能够帮助我!谢谢


2
我假设hetBoek.voegContactToe(nweC)被声明为void类型。如果((void)method),你会期望它做什么? - Brian Agnew
可能是重复问题:'void' type not allowed here error (java) help? - fglez
6个回答

4

hetBoek.voegContactToe(nweC) 返回 void(无返回值)。必须返回一个 boolean,才能在 if 语句中使用。


谢谢,我经验不是很丰富,所以不知道为什么人们开始投反对票。我知道这是一个新手问题,但多亏了这些答案,我已经解决了它! - Colinch

3

hetBoek.voegContactToe(nweC) 返回一个 void 类型。在 if() 中应该使用 boolean 类型。


3

hetBoek.voegContactToe 方法很可能是 void,它不返回任何值。因此,在 if 语句中使用它时,您的意图是什么:

if (nweC != null && hetBoek.voegContactToe(nweC)) {

该方法应该返回boolean而不是void吗?

3

我认为这个方法的返回类型是void

hetBoek.voegContactToe(nweC);

它的返回类型应该是布尔类型。


3
您缺少布尔值。
public boolean hetBoek.voegContactToe(Contact contact)


if (e1 op1 e2 op2 e3 ... )
{
...
}

e - 表达式需要返回一个布尔值。


2

当前hetBoek.voegContactToe(nweC);是无返回值的函数,需要改为返回boolean类型。

找到你的方法voegContactToe(),将其返回类型更改为boolean,并根据逻辑添加返回语句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接