Java检查 boolean 值是否已初始化

标签 java initialization boolean

我不是在谈论检查 boolean 值是否为 null 作为检查它是否已初始化的方法。因为那行不通。所以我认为这可能有效:

public class MyClass{

    private boolean setting;

    private boolean getSetting{
        // get the setting;
    }

    public void main{
        if (setting != (true && false))
            setting = getSetting();
        // do main stuff;
    }

}

确实如此!所以我的问题是:与使用额外变量的替代方案相比,这是一个好的做法吗:

public class MyClass{

    private boolean initialized = false;
    private boolean setting;

    private boolean getSetting{
        // get the setting;
    }

    public void main{
        if (!initialized)
            setting = getSetting();
            initialized = true;
        // do main stuff;
    }

}

最佳答案

boolean 值是原始类型,因此不需要初始化。 boolean 值的默认值为 false

第一个代码示例返回 false,因为短语 true && false 将始终等同于 false(&& 检查两个语句是否为真,而事实并非如此,所以它是 false),然后检查 setting(也是 false)是否不等于那个,但事实并非如此。因此,initialized 变量可能很有用。

您可以阅读有关默认值和基本类型的更多信息 here .

关于Java检查 boolean 值是否已初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886184/

相关文章:

java - 安卓工作室错误 :/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/cacerts (No such file or directory)

java - 通过自定义 Spring validator 处理绑定(bind)到输入字段的长值是否太晚了?

java - 如何向 javafx 添加勾号?

swift - Bool.hashValue 转换为 Int 有效吗?

javascript - react setState : using checkbox to change boolean value

java - 如何配置spring应用的多个实现

java - Java-11 Spring-boot部署到Google Cloud错误:应用程序不满足[java11]的要求

Java变量和构造函数初始化?

c++ - 仅使用 1 行 C++ 初始化二维 vector

boolean - 如何使用或门制作异或门?