私は本当に混乱しています。シリアルが値を持っているかどうかをチェックし、そうでない場合はそのメッセージを表示するためにこのコードが必要です。値を設定し、nullで動作していないことを確認してください
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;
}
}
デバッガを使用します。ヌルを渡す場合は、値を設定するだけです。おそらく 'if(this.serial == null)'を意味します。 –
セッターではメッセージボックスを使用しないでください。理想的には、セッターは一切持ってはいけません。コンストラクタでのみ初期化してください。しかし、setterを持っている必要がある場合は、IllegalStateExceptionをスローします。 –
ダイアログボックスを上げる代わりにExceptionをスローして、呼び出し側が何をすべきかを決定させる必要があります。 – Tezra