可空双

Syn*_*rix 1 java double null

这是一个简单的问题。如何将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;     
  } 
}
Run Code Online (Sandbox Code Playgroud)

Men*_*ena 6

使用java.lang.Double而不是原始double

A Double扩展Object并且可以为空。

例如:

Double level = null;
Run Code Online (Sandbox Code Playgroud)

API 在这里

笔记

  • 在您的情况下,if由于level声明nullif/ else作用域之外,因此仅将执行该语句。
  • break在这种情况下,您的陈述是无用的。

  • 附录:如果要将Double对象与另一个Double对象进行比较,请使用.equals()或.doubleValue()进行比较。否则,它将查看实际的对象引用。我已经看到不止一个程序员对此感到困惑。 (2认同)