在 Java 里,double 是基本类型,不能为 null;
如果你需要处理“空值”,必须使用 Double(包装类型)。下面分几种常见场景说明。
| 类型 | 是否可为 null | 说明 |
|---|---|---|
double |
❌ 不可以 | 默认值是 0.0 |
Double |
✅ 可以 | 默认值是 null |
✅ 要处理空值,用 Double
Double 接收可能为空的数值Double price = null;
if (price == null) {
System.out.println("价格为空");
} else {
double value = price; // 自动拆箱
System.out.println(value);
}
⚠️ 注意:
如果 price == null,下面代码会抛异常:
double v = price; // NullPointerException
Double price = null;
double result = price != null ? price : 0.0;
或 Java 8+:
double result = Optional.ofNullable(price).orElse(0.0);
Optional<Double>(推荐用于返回值)Optional<Double> price = Optional.empty();
double result = price.orElse(0.0);
适合:
nullDouble price; // 对应数据库 NULL
MyBatis 返回:
NULL → Java null✅ 不要用 double
public class Product {
private Double price; // 正确
}
JSON:
{
"price": null
}
double d1 = 0.0; // 一定有值
Double d2 = null; // 可以表示“没有值”
❌ 错误写法:
double price = null; // 编译错误
❌ 空指针风险:
Double price = null;
double p = price; // NullPointerException
✅ 正确写法:
Double price = null;
if (price != null) {
double p = price;
}
Java 中 double 不能表示空值,处理空值必须用
Double,并在使用前判空。
如果你有具体场景(数据库、JSON、前端传值、计算、BigDecimal),可以贴代码,我可以帮你给出最合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。