一、比较两个 Integer 对象

  • 在 Java 中,比较两个 Integer 对象(可能为 null)时,可以使用 Objects 的 equals 方法
// 判断 a 与 b 是否相等,包括都为 null

Integer a = 10;
Integer b = null;

boolean result = Objects.equals(a, b);

System.out.println(result);

二、Integer 转 Long

1、具体实现
  1. 方式 1(推荐)
Integer i = 100;

Long l = i.longValue();
返回 int 转换后的 long

然后通过自动装箱将 long 变成 Long 对象
  1. 方式 2
Integer i = 100;

Long l = Long.valueOf(i);
`Long.valueOf(long)` 接收 long,这里 i 是 Integer 对象

先进行拆箱,`i.intValue()` 得到 int,然后转为 long

再调用 `Long.valueOf(long)`
2、注意事项
  1. 不能直接强转
Integer i = 100;

Long l = (Long) i;
# 输出结果

错误: 不兼容的类型: Integer无法转换为Long
  1. 注意空值
Integer i = null;

Long l = i == null ? null : i.longValue();

三、Long 转 Integer

1、具体实现
  1. 方式 1(推荐)
Long l = 100L;

Integer i = l.intValue();
  1. 方式 2
Long l = 100L;

Integer i = (int) l.longValue();
2、注意事项
  • 注意溢出风险
// 超出 int 范围

Long l = 2147483648L;

Integer i = l.intValue();

System.out.println(i);
# 输出结果

-2147483648
// 安全处理

Long l = 2147483648L;


if (l > Integer.MAX_VALUE || l < Integer.MIN_VALUE) {
    throw new ArithmeticException("Long 值超出 int 范围");
}

Integer i = l.intValue();
# 输出结果

java.lang.ArithmeticException: Long 值超出 int 范围
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐