【问题标题】:What is the third boolean state in java?java中的第三个布尔状态是什么?
【发布时间】:2009-06-04 18:03:29
【问题描述】:

虽然我知道根据定义,布尔值仅包含两种状态,真或假。我想知道布尔值在使用这些状态之一初始化之前有什么值。

【问题讨论】:

  • 第三个布尔状态通常是 FileNotFound 。
  • @Brian,这不取决于您是否实现了 Paula Bean?
  • @Paul:当你不观察的时候,它是不存在的。只有当你打开门时,量子函数才会崩溃:D
  • @talnox 当你不观察它是概率云!

标签: java boolean primitive


【解决方案1】:

It defaults to false.

编辑:应大众需求:

除非您使用包装的Boolean,它默认为空。 – sudhir.j

【讨论】:

  • 一般来说,Java 变量默认为 C 程序员可能称之为“假”的值——例如0、null、false等
  • 除非你使用包装的布尔值,它默认为空。
  • @sudhir.j 绝对正确。我希望对答案进行编辑以包括在内。
  • 我碰巧知道 sudhir.j 这个事实,这就是为什么我将这个问题标记为原始问题,但我也希望为了其他人的利益而编辑答案以包含它。
【解决方案2】:

如果是局部变量,在初始化之前引用它是编译器错误。如果是字段,则初始化为false。

【讨论】:

    【解决方案3】:
    public class NewMain {
    
        boolean foo;
        Boolean bar;
    
        public static void main(String[] args) {
            NewMain obj = new NewMain();
    
            obj.whatBoolean();
        }
    
        public void whatBoolean() {
            System.out.println(foo);
            System.out.println(bar);
        }
    }
    

    输出

    false
    null
    

    我知道这是一个更具哲学意义的问题,但是由于自动装箱,您可以将 Java 用作几乎真正的 OO 语言(我讨厌原始类型......现在只有它也可以反过来工作)。但是,它确实会在您使用对象时改变行为(为了更好的 IMO)。

    【讨论】:

      【解决方案4】:

      没有第三种状态。 正如@Yishai 所说,如果您不分配值,则布尔字段默认为false。局部变量必须在使用前赋值:

      访问未初始化的本地 变量将导致编译时 错误

      the doc

      【讨论】:

        【解决方案5】:

        在 JAVA 中布尔类型默认为 False。

        【讨论】:

          【解决方案6】:

          仅供参考,boolean 默认为 false,原始数字默认为 0、0L、0f 或 0d(视情况而定),char 默认为 '\0',对象引用(例如 Boolean)默认为 null。

          这也适用于数组的内容。 (一个常见的问题是对象数组最初充满了空值)

          【讨论】:

            【解决方案7】:

            这是错误

            【讨论】:

              【解决方案8】:

              如果你有类似的东西

              boolean isTrue;
              
              System.out.println(isTrue);
              

              你应该得到一个编译时错误,因为布尔值没有被初始化。默认情况下,当您尝试初始化它时,它将被设置为 false;

              【讨论】:

              • 是的,但是如果布尔值是实例变量,则默认为false,没有警告。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-14
              • 2011-01-16
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多