在Java中如何将Long转换为int?

在Java中如何将Long转换为int?,java,Java,Eclipse正在用错误标记此行: 不能长时间转换为int 使用原语long Long x; int y = (int) x; 不能将对象(Long是对象)强制转换为基元,唯一的例外是通过自动(取消)装箱对应的基元/包装器类型 如果必须将Long转换为int,请使用Long.intValue(): 但是要小心:你可能会丢失信息!一个Long/Long有64位,可以容纳比整数/int(仅32位)Long x是一个对象多得多的数据 Long x = 23L; int y = x.intValue

Eclipse正在用错误标记此行:

不能长时间转换为int


使用原语
long

Long x;
int y = (int) x;
不能将对象(Long是对象)强制转换为基元,唯一的例外是通过自动(取消)装箱对应的基元/包装器类型

如果必须将
Long
转换为int,请使用
Long.intValue()


但是要小心:你可能会丢失信息!一个
Long
/
Long
有64位,可以容纳比
整数
/
int
(仅32位)

Long x
是一个对象多得多的数据

Long x = 23L;
int  y = x.intValue();

正在工作。

可能是Nope的副本,而不是副本。另一个问题是关于转换
long
,这个问题是关于转换
long
。差别很大!请注意,Long和Long是不同的。“Long”是封装基元类型“Long”的值的类。还要确保x不为null,因为Long可以为null,而Long不能为null。@Thomas-取决于上下文,但我可以想象,在null Long的情况下,获得NPE是可以的。IMHO:双重强制转换和三重强制转换容易混淆,最好避免。
Long x = 23L;
int  y = x.intValue();
int y = x.intValue();
int y = (int) (long) x;