在 Java 里,double(基本类型)不能为 null,但 Double(包装类型)可以为 null。下面分情况说清楚。
double(不可能为 null)double d = 0.0;
double 是基本数据类型nullDouble(可以判空)Double d = null;
if (d == null) {
System.out.println("Double 为 null");
}
或用于方法参数 / 返回值:
public void test(Double d) {
if (d == null) {
return;
}
double value = d; // 自动拆箱
}
Double d = null;
double x = d; // ❌ NullPointerException
✅ 安全写法:
Double d = null;
double x = (d != null) ? d : 0.0;
或使用 Optional:
Double d = null;
double x = Optional.ofNullable(d).orElse(0.0);
Double d = null;
if (d == null || d.isNaN()) {
System.out.println("为空或非法数值");
}
| 类型 | 能否为 null | 判空方式 |
|---|---|---|
double |
❌ 不能 | 无需判空 |
Double |
✅ 能 | d == null |
| 拆箱 | ⚠️ 风险 | 先判 null |
如果你是在 数据库 / JSON / 接口字段 里用 Double,一般都应该用 Double 而不是 double,否则拿不到“无值”的语义。
需要我结合 MyBatis / Jackson / Spring 场景讲判空吗?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。