设置值并使用null检查不起作用

时间:2017-08-09 14:27:45

标签: java

我真的很困惑。我需要这段代码来检查串口是否有值,否则设置值否则显示该消息。

public class Calculator {

    public static void main(String[] args) {
        Product p2 = new Product("1st", 1.15);
        p2.setSerial("1655");
        System.out.println("done");
    }
}

class Product {

    private String name;
    private String serial;
    private double price;

    public Product(String name, String serial, double price) {
        this.name = name;
        this.serial = serial;
        this.price = price;
    }

    public Product(String name, double price) {
        this.name = name;
        serial = null;
        this.price = price;
    }

    public void setSerial(String serial) {
        if (serial == null)
            this.serial = serial;

        else
            JOptionPane.showMessageDialog(null, "This item has a serial number");

    }

    public String getSerial() {
        return serial;
    }
}

1 个答案:

答案 0 :(得分:3)

 if (serial == null)

您检查传递给方法的参数并不罕见,因为您必须检查类成员。你必须把它改成

if (this.serial == null)

您感到困惑,因为您的参数和实例成员具有相同的名称。

为什么要将GUI与模型类混合使用?如果您测试的很好,但混合模型类和GUI不是一个好主意。

除此之外的一个注释是,我可以看到你在if else省略{},不要这样做。拥有他们。只是为了避免这样的混乱。