这是一个简单的问题。如何将double初始化为null?在级别为空时,它将要求用户输入数据。否则,如果数据已经输入,它将要求用户覆盖保存更改。从下面的代码中,我只能运行" if(level == null){"而不是覆盖声明
public static void inValue() {
double level = null;
if(level == null){
System.out.println("Enter level: ");
level = sc.nextDouble();
pat1.setLevel(level);
break;
}
else{
System.out.println("Overwrite");
System.out.println("Enter level: ");
level = sc.nextDouble();
pat1.setLevel(level);
break;
}
}
答案 0 :(得分:4)
使用java.lang.Double
代替原始double
。
Double
扩展Object
并且可以为空。
例如:
Double level = null;
API here。
备注强>
if
语句,因为level
在null
/ if
范围之外被声明为else
。break
语句在此上下文中无用。答案 1 :(得分:1)
要为null
分配一个双倍的值,您必须使用java.lang.Double
类。
但这只是你问题的一部分。
每次拨打inValue()
时,都会将level
设置为null
。
所以level==null
总是如此。
您必须在此函数之外声明您的level
对象,以便它保留以前的值。