如何设置为int值null? Java Android

时间:2014-02-24 21:48:11

标签: java android null integer int

这是将已经定义的 int 设置为 null 的最佳方法吗?

private int xy(){
    int x = 5;
    x = null; //-this is ERROR
    return x;
}

所以我选择了这个

private int xy(){
    Integer x = 5;
    x = null; //-this is OK
    return (int)x;
}

然后我需要类似的东西:

if(xy() == null){
    // do something
}

我的第二个问题是否可以安全地将Integer转换为int?

感谢您的回复。

4 个答案:

答案 0 :(得分:12)

你做不到。 int是原始值类型 - null没有int值这样的概念。

您可以将nullInteger一起使用,因为这是而不是原始值。

您的方法尝试实现的目标并不十分清楚,但您无法将null表示为int

答案 1 :(得分:10)

在这种情况下,我会避免一起使用null

只需使用-1作为null

如果您需要-1为可接受(非空)值,请改用float。由于您的所有真实答案都是整数,因此请将空0.1

或者,找到x永远不会出现的值,例如Integer.MAX_VALUE或其他内容。

答案 2 :(得分:5)

只有对象可以为null。基元(如int)不能。

  

我可以安全地将Integer转换为int吗?

你不需要演员,你可以依靠自动拆箱。但是它可能会抛出NullPointerException:

Integer i = 5;
int j = i; //ok

Integer k = null;
int n = k; //Exception

答案 3 :(得分:0)

您的方法编译,但在尝试取消整理整数时会抛出NullPointerException ...

Integer和int之间的选择取决于您要实现的目标。你真的需要一个表示“没有价值”的额外状态吗?如果这是合法状态,请使用Integer。否则使用int。