Java中如何实现Integer到Long的空安全转换?
Java Integer 转 Long 的空安全简洁实现
主流标准库及Apache Commons、Guava、Spring等常用第三方类库中,确实没有提供类似Long.longValue(Integer)这种直接的空安全转换方法,你并没有遗漏。
针对这个需求,目前可行的方案有以下几种:
三元表达式写法:最直接但重复编写时不够简洁,尤其当
value是长名称或复杂函数调用时Integer value = null; Long result = value != null ? value.longValue() : null;Optional函数式写法:风格更现代,但同样存在冗余问题
Long result = Optional.ofNullable(value).map(Integer::longValue).orElse(null);自定义工具类方法:虽然需要自行编写,但可以一次性封装后全局复用,还能通过重载支持其他数值类型的转换
public class NumberUtils { public static Long longValue(Integer value) { return value != null ? value.longValue() : null; } // 重载支持Short转Long public static Long longValue(Short value) { return value != null ? value.longValue() : null; } // 其他数值类型的重载... }
主流类库未提供这类方法的原因,大概率是因为转换逻辑过于简单,属于极轻量的工具逻辑,库方为避免API冗余膨胀,更倾向于让开发者自行封装适配。
内容的提问来源于stack exchange,提问作者dimnnv
相关产品推荐
相关产品推荐

