当前位置: 首页 > 知识库问答 >
问题:

检查是否设置了基元

东郭远航
2023-03-14

给定一个非常简单的类:

class MyClass {
    int id;
    double value;

    MyClass(int id) {
        this.id = id;
    }

    void setValue(double v) {
        value = v;
    }

    boolean isValueUnassigned() {
        return value == 0;
    }
}

要检查是否尚未赋值,只需执行返回值==0即可 double0

共有3个答案

商璞
2023-03-14

再加上@Harshal已经说过的话。类似的代码如下所示:

class MyClass {
    private int id;
    private Double value;

    public MyClass(int id) {
        this.id = id;
    }

    public void setValue(double v) {
        value = v;
    }

    public double getValue() {
        //Check for null pointer and return 
        if(value == null)
            return <whatever you want>;

        return value.doubleValue();;
    }

    public boolean isValueSet() {
        return (value == null ? false : true);
    }
}
陶唯
2023-03-14

好的,是原语double默认设置为0.0。但是如果你只做返回值==0您无法确定之前是否有人调用了setValue(0),但这也是一个有效的赋值。如果您想100%确定是否有人调用了setValue(),我建议这样做:

class MyClass {
    private int id;
    private double value;
    private boolean valueSet; // is false by default 

    public MyClass(int id) {
        this.id = id;
    }

    public void setValue(double v) {
        value = v;
        valueSet = true;
    }

    public boolean isValueSet() {
        return valueSet;
    }
}
端木高邈
2023-03-14

您应该使用double的包装器类,即double。对于双数据类型,默认值为null。这样就不会有任何歧义。如果值为null,则不会为其分配任何值。

 类似资料:
  • 如何检查字节中的某个位是否被设置?

  • 问题内容: 如何检查是否设置了项目?目前我正在使用 问题答案: 如果该项不存在,则WebStorage规范中的方法显式返回: …如果给定键在与对象关联的列表中不存在,则此方法必须返回null。… 所以你可以:

  • 问题内容: 我需要检查value是否定义为任何东西,包括null。将null值视为undefined并返回。以以下为例: 请注意,这是未定义的。 我需要找到满足以下条件的条件: 有任何想法吗? 问题答案: IIRC,您可以使用此功能:

  • 问题内容: 我试图找到如何检查是否设置了结构属性,但找不到任何方法。 我期待这样的事情,但实际上这是行不通的: 问题答案: 就像dyoo所说的,如果您的struct属性是指针,则可以使用。如果您想将它们保留为字符串,可以与进行比较。这是一个示例: http://play.golang.org/p/YStKFuekeZ

  • 问题内容: 如何检查核心数据对象中是否设置了属性? 我将所有核心数据对象加载到目录中: 我的核心数据NSManagementObject是: formQuestions [indexPath.row] .noticeText //加载: 我的属性“ noticeText”可以为空,因此,当我创建核心数据对象时,可能无法设置某些值。(该属性在核心数据中设置为可选) 当我现在尝试证明是否有值时,它总是

  • 问题内容: 在Python中,有没有一种简单的方法来检查可选参数的值是否来自其默认值,或者是因为用户已在函数调用中显式设置了它? 问题答案: 很多答案都没有完整信息的一部分,因此我想将所有信息与我最喜欢的模式结合在一起。 默认值是一种类型 如果默认值是可变对象,那么您很幸运:您可以利用以下事实:在定义函数时,Python的默认参数将被评估一次(上一节答案末尾的更多信息) 这意味着您可以轻松地使用来