2023-12-26 05:00:04

将Long转换为Integer

如何将一个长值转换为一个整数值在Java?


当前回答

使用toIntExact(long value)返回long参数的值,如果值溢出int值则抛出异常。它只适用于API等级24或以上。

int id = Math.toIntExact(longId);

其他回答

你需要对它进行类型转换。

long i = 100L;
int k = (int) i;

请记住,long类型的范围比int型更大,因此可能会丢失数据。

如果您谈论的是盒装类型,那么请阅读文档。

最好的简单方法是:

public static int safeLongToInt( long longNumber ) 
    {
        if ( longNumber < Integer.MIN_VALUE || longNumber > Integer.MAX_VALUE ) 
        {
            throw new IllegalArgumentException( longNumber + " cannot be cast to int without changing its value." );
        }
        return (int) longNumber;
    }

除了@Thilo接受的答案,数学。toIntExact在可选方法链中也很好用,尽管它只接受int作为参数

Long coolLong = null;
Integer coolInt = Optional.ofNullable(coolLong).map(Math::toIntExact).orElse(0); //yields 0

使用toIntExact(long value)返回long参数的值,如果值溢出int值则抛出异常。它只适用于API等级24或以上。

int id = Math.toIntExact(longId);

试试这个:

Int i = Long. valueof (L)// L:长值