Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查双精度值是否为空_Java_Android_Json - Fatal编程技术网

Java 如何检查双精度值是否为空

Java 如何检查双精度值是否为空,java,android,json,Java,Android,Json,我试图从json中获取双精度值,我想问一下如何检查双精度值是否为空 这是我最初写的 私人静电 final String kartu_xcord = "xcord"; private static final String kartu_ycord = "ycord"; ouble xcord,ycord; 这就是我解析json的方式: xcord = c.getDouble(kartu_xcord); ycord = c.getDouble(kartu_ycord); 这就是我

我试图从json中获取双精度值,我想问一下如何检查双精度值是否为空

这是我最初写的 私人静电

final String kartu_xcord = "xcord";
    private static final String kartu_ycord = "ycord";
    ouble xcord,ycord;
这就是我解析json的方式:

xcord = c.getDouble(kartu_xcord);
ycord = c.getDouble(kartu_ycord);
这就是我如何检查xcord是否为null或空:

if (xcord.isNaN()) {
            LinlayNoMap.setVisibility(View.VISIBLE);
        } else {
            linlaymap.setVisibility(View.VISIBLE);
}

我希望有人能帮我解决我的问题谢谢你在Java中double不能是空的。这是一个双倍值。也许可以试试双包装器?

在java中,双包装器是一种不能为null的基本类型,java中有一个可以检查为null的双包装器类


声明类型为
Double
的coords不是
Double
,并检查
Double
值是否为null。

doubles在Java中永远不能为null。 您可以改为使用Json的
hasKey
方法来检查您正在解析的项是否包含该值

c.hasKey("xcord")

您可以检查您的json是否具有您要查找的密钥:

if (c.hasDouble("my_coord")) {
  y_coord = c.getDouble("my_coord");
}
如果y_coord是一个
双精度
(大写D),则可以将其设置为null

if (c.hasDouble("my_coord")) {
  y_coord = c.getDouble("my_coord");
} else {
  y_coord = null;
}

这当然取决于您用来读取
JSON
的API,
hasDouble
方法可以被称为其他方法。我建议您尝试一下GSON,非常简单,可以为您处理大部分解析工作。

使用Double,而不是Double

Double  dValue= someVariable;

if(!dValue.isNaN())
{
 // you code here
}

假设您使用的是JSONObject,那么您可以这样做

xcord = c.optDouble(kartu_xcord, Double.MIN_VALUE);

if (xcord == Double.MIN_VALUE){
  //xcord is empty
}

您可以这样做:
valueOf(xcord.isEmpty()
double
不能为空,因此我无法设置条件来检查它?因为如果xcord返回空值,我想创建不同的视图,如果不返回空值,如果坚持使用原语double,则No.double(包装类)可以为null。所以我不能设置条件来检查它?因为我想对xcord是否返回空值和是否返回空值进行不同的查看如果没有“空值”这样的东西,您如何检查它?Double对象包装器可以为空,所以您可以使用它。所以我不能设置条件来检查它?正如您在上面看到的,如果xcord返回空值,我想创建不同的视图,如果没有,我必须更改为Double并设置if(xcord.isNaN()){LinlayNoMap.setVisibility(view.VISIBLE);}否则{linlaymap.setVisibility(view.VISIBLE);但它返回force close我必须将if(xcord.isNaN()){LinlayNoMap.setVisibility(View.VISIBLE);}else{linlaymap.setVisibility(View.VISIBLE)更改为Double并使其生效;但当您通过xcord.isNaN()进行检查时,它返回force close,它将告诉您值是否为数字,我想它不会检查空值。我检查了我的日志,我在这行中得到了一个eror:if(xcord.isNaN()),那么我如何检查它是否为空值?您可以使用
if(DoubleValue==null){
因为Double是类,所以在java中它不是基元类型。对于Double,非数字是一个非常特定的值,它与空值或缺少值无关。Double.MIN_值可以是任何在正常数据中永远不存在的值。