Integer i = theLong != null ? theLong.intValue() : null;

或者如果你不需要担心null:

// auto-unboxing does not go from Long to int directly, so Integer i = (int) (long) theLong;

而且在这两种情况下,你可能会遇到溢出(因为Long可以存储比Integer更宽的范围)。

这里有三种方法来做到这一点:

Long l = 123L; Integer correctButComplicated = Integer.valueOf(l.intValue()); Integer withBoxing = l.intValue(); Integer terrible = (int) (long) l;

所有三个版本都生成几乎相同的字节码:

0 ldc2_w [17] 3 invokestatic java.lang.Long.valueOf(long) : java.lang.Long [19] 6 astore_1 [l] // first 7 aload_1 [l] 8 invokevirtual java.lang.Long.intValue() : int [25] 11 invokestatic java.lang.Integer.valueOf(int) : java.lang.Integer [29] 14 astore_2 [correctButComplicated] // second 15 aload_1 [l] 16 invokevirtual java.lang.Long.intValue() : int [25] 19 invokestatic java.lang.Integer.valueOf(int) : java.lang.Integer [29] 22 astore_3 [withBoxing] // third 23 aload_1 [l] // here's the difference: 24 invokevirtual java.lang.Long.longValue() : long [34] 27 l2i 28 invokestatic java.lang.Integer.valueOf(int) : java.lang.Integer [29] 31 astore 4 [terrible]

Integer intValue = myLong.intValue();

如果你在意检查溢出,并有番石榴方便,有Ints.checkedCast() :

int theInt = Ints.checkedCast(theLong);

这个实现很简单,并且在溢出时抛出IllegalArgumentException :

public static int checkedCast(long value) { int result = (int) value; checkArgument(result == value, "Out of range: %s", value); return result; }

你需要input它。

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

请记住,长整数的范围比整数大,所以你可能会丢失数据。

如果您正在讨论盒装types,请阅读文档 。

最简单的方法是:

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; }

如果您正在使用Java 8,请按照以下步骤操作

import static java.lang.Math.toIntExact; public class DateFormatSampleCode { public static void main(String[] args) { long longValue = 1223321L; int longTointValue = toIntExact(longValue); System.out.println(longTointValue); } }

假设不为null longVal

Integer intVal = ((Number)longVal).intValue();

它的作品例如你得到一个对象,可以是一个整数或一个长。 我知道这很丑陋,但事实恰恰相反

长途客人= 1000;

int convVisitors =(int)visitor;

在Java中,有一个严格的方法来将长整型转换为整型

不仅可以将lnog转换为int,任何types的extends数字都可以转换为其他Numbertypes,这里我将向您展示如何将long转换为int,反之亦然。

Long l = 1234567L; int i = org.springframework.util.NumberUtils.convertNumberToTargetClass(l, Integer.class);

java invoke int long,将Long转换为Integer相关推荐

  1. java 将一串字符串 转换成_简单几步,教你如何轻松的将Java中的字符串转换为Integer,你学会了吗?...

    在Java中有两种将字符串转换为Integer的方法, 使用Integer.parseInt( )到Integer的字符串 使用Integer.value eOf( )到Integer的字符串 假设您 ...

  2. 在Java中将Double转换为Integer

    本文翻译自:Cast Double to Integer in Java Any way to cast java.lang.Double to java.lang.Integer ? 有什么方法可以 ...

  3. java将int转换成字符串,Java将int转换为字符串

    我们可以使用String.valueOf()和Integer.toString()方法在Java中将int转换为String.另外,我们可以使用String.format()方法,字符串连接运算符等. ...

  4. double转integer java_在Java中将Double转换为Integer

    我认为如果不覆盖其背后的_539617,就无法理解其他答案 . 您无法直接将 Integer 转换为 Double 对象 . 此外 Double 和 Integer 是不可变对象,因此您无法以任何方式 ...

  5. Java中int[]与Integer[]相互转化的方法

    传统方法 //Convert int[] to Integer[] public static Integer[] toObject(int[] intArray) {Integer[] result ...

  6. Java中int和Integer的区别

    int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者>>integer 是后者(也就是一个 ...

  7. Java中怎么将Long类型转换成Integer或int类型

    Java中怎么将Long类型转换成Integer或int类型?    强转.Long a=10l; int b = (int)a; 不过如果long值超出int的取值范围后再转型的话会有问题的.就是转 ...

  8. JAVA中int 是什么意思,java中int和Integer什么区别

    java中int和Integer的区别  一看就懂 int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前 ...

  9. Java中Int、Integer、new Integer()之间的区别

    Java中有八种基本数据类型,Int是其中之一.而Integer是Int的封装,即Integer其实是一个对象.可以通过new来创建一个Integer对象,也可以直接将Int值赋给Integer变量. ...

最新文章

  1. 环境变量方式使用 Secret - 每天5分钟玩转 Docker 容器技术(158)
  2. linux 挂载网络文件系统,linux 挂载网络文件系统
  3. SwiftUI之深入解析布局如何自定义AlignmentGuides
  4. 大话数据结构之算法 时间复杂度
  5. 文件操作-读取文件后文件指针会发生变化
  6. php中的point用法,php strnatcmp()函数的用法总结
  7. 基于JAVA的在线图书销售系统
  8. 运用ENVI bandmath对多波段进行计算
  9. Java面试基础篇-Redis缓存
  10. tar打包忽略某个目录
  11. 邮件服务器1---原理以及基本概念
  12. 写DM9000网卡芯片驱动的预备知识
  13. ssh-keygen命令使用
  14. 使用定时任务向百度推送网站URL
  15. 京东到家机器学习平台建设
  16. 步进电机驱动之相数、步距角、细分、拍数
  17. ssm+Vue计算机毕业设计学科竞赛赛场安排系统(程序+LW文档)
  18. 【Router】PC连接到路由LAN,但是无法获取到IP地址问题分析及解决方案
  19. 华为分布式文件存储服务器配置,分布式存储服务器
  20. 520七夕情人节告白网页代码—浪漫3D相册

热门文章

  1. mysql自动获取时间列_mysql自动获取时间日期的方法
  2. python png 背景透明_python – Pygame:在png图像中将所有白色像素转换为完全透明...
  3. vscode用作markdown入门2--代码上下标目录字体
  4. Python calendar日历模块的常用方法
  5. numpy.cov() 计算协方差矩阵
  6. 在ASP.NET 3.5中使用新的ListView控件(2)
  7. 【opencv学习】【hough圆检测】
  8. 数学物理方法pdf_中考状元笔记九科(语文+数学+物理+化学+英语+历史+地理+政治+生物)(高清PDF);...
  9. 人工智能语言python实验报告_【报名】人工智能语言Python启蒙课程(五六年级)...
  10. 行为识别(HAR)调研