java - 将Integer转换为Long

我需要使用反射来获取字段的值。 碰巧我并不总是确定该字段的数据类型是什么。 为此,为了避免一些代码重复,我创建了以下方法:

@SuppressWarnings("unchecked")

private static T getValueByReflection(VarInfo var, Class> classUnderTest, Object runtimeInstance) throws Throwable {

Field f = classUnderTest.getDeclaredField(processFieldName(var));

f.setAccessible(true);

T value = (T) f.get(runtimeInstance);

return value;

}

并使用此方法,如:

Long value1 = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance);

要么

Double[] value2 = getValueByReflection(inv.var2(), classUnderTest, runtimeInstance);

问题是我似乎无法将Integer投射到Long:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

有没有更好的方法来实现这一目标?

我使用的是Java 1.6。

13个解决方案

113 votes

只是:

Integer i = 7;

Long l = new Long(i);

vahid kh answered 2019-08-13T04:30:29Z

79 votes

不,您不能将Integer转换为Long,即使您可以从int转换为long.对于已知为数字且您想获得长值的单个值,您可以使用:

Number tmp = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance);

Long value1 = tmp.longValue();

对于阵列,它会更棘手......

Jon Skeet answered 2019-08-13T04:30:10Z

42 votes

Integer i = 5; //example

Long l = Long.valueOf(i.longValue());

这样可以避免转换为String时的性能损失。 Integer中的longValue()方法只是int值的强制转换。 Long.valueOf()方法为vm提供了使用缓存值的机会。

Rich MacDonald answered 2019-08-13T04:30:56Z

18 votes

奇怪的是,我发现如果你从一个字符串解析它是有效的。

int i = 0;

Long l = Long.parseLong(String.valueOf(i));

int back = Integer.parseInt(String.valueOf(l));

赢得。

Anon answered 2019-08-13T04:31:29Z

7 votes

通过添加' L'直接将整数转换为long。 到整数结束。

Long i = 1234L;

Jeff Johny answered 2019-08-13T04:31:55Z

6 votes

将整数转换为长非常简单且有很多方法可以转换它

例1

new Long(your_integer);

例2

Long.valueOf(your_integer);

例3

Long a = 12345L;

例4

如果您已将int类型化为Integer,则可以执行以下操作:

Integer y = 12;

long x = y.longValue();

Naresh Kumar answered 2019-08-13T04:32:41Z

5 votes

如果Integer不为null

Integer i;

Long long = Long.valueOf(i);

valueOf将自动强制转换为new。

使用valueOf而不是new允许编译器或JVM缓存此值(如果它很小),从而产生更快的代码。

lostintranslation answered 2019-08-13T04:33:22Z

4 votes

((Number) intOrLongOrSomewhat).longValue()

cingulata answered 2019-08-13T04:33:41Z

1 votes

如果您知道Integer不是NULL,则可以这样做:

Integer intVal = 1;

Long longVal = (long) (int) intVal

Steven Spungin answered 2019-08-13T04:34:08Z

1 votes

new Long(Integer.longValue());

要么

new Long(Integer.toString());

Pavlo Zvarych answered 2019-08-13T04:34:29Z

1 votes

从int变量到long类型的解析器包含在Integer类中。 这是一个例子:

int n=10;

long n_long=Integer.toUnsignedLong(n);

您可以轻松使用此内置函数来创建从int解析为long的方法:

public static long toLong(int i){

long l;

if (i<0){

l=-Integer.toUnsignedLong(Math.abs(i));

}

else{

l=Integer.toUnsignedLong(i);

}

return l;

}

Bremsstrahlung answered 2019-08-13T04:35:04Z

0 votes

这是无效的

Number tmp = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance);

Long value1 = tmp == null ? null : tmp.longValue();

adkisson answered 2019-08-13T04:35:30Z

-1 votes

如果是Long类型的List,则将L添加到每个Integer值的末尾

List list = new ArrayList();

list = Arrays.asList(1L, 2L, 3L, 4L);

Joydeep Dutta answered 2019-08-13T04:35:58Z

java integer long 转换_java - 将Integer转换为Long相关推荐

  1. java时间格式转换_Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

  2. java int 64 转换_Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bi ...

  3. java 流量单位转换_将内容转换为持续流量的五种最佳方法

    java 流量单位转换 Websites that have focused on content marketing have done really well for themselves. We ...

  4. java long string 转换_Java long 转成 String的实现

    Java long 转成 String的实现 第一种: String s = String.valueOf(long) 第二种: String s = Long.toString(long) 补充知识 ...

  5. java版 pdf转换_java如何将pdf转换成image

    java如何将pdf转换成image 发布时间:2020-08-26 03:05:15 来源:脚本之家 阅读:86 作者:yiluoak_47 本文实例为大家分享了java将pdf转换image的具体 ...

  6. java中 int 比较_java中Integer与int的种种比较你知道多少?

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1; ...

  7. java中integer的范围_java中integer取值范围是什么

    java中integer取值范围是什么 发布时间:2020-08-27 10:01:14 来源:亿速云 阅读:69 作者:小新 这篇文章给大家分享的是有关java中integer取值范围是什么的内容. ...

  8. java 泛型强制转换_java – 使用泛型强制转换为内部类

    请考虑以下代码: public class Outer { public class Inner{ } public static Outer.Inner get(){ Object o = new ...

  9. java 中文日期转换_Java将中文日期转换为日期

    直接上代码 public static void main(String[] args) throws IOException { testConvertZwrq(); } private stati ...

最新文章

  1. JVM调优:基本垃圾回收算法
  2. Oracle DSI(Data Server Internals) 下载说明
  3. 计算机四级考试操作系统单元题,计算机四级考试操作系统单选练习
  4. android 4.0以上WebView不能全屏播放视频的解决办法
  5. c++常见并且必须记住的问题
  6. [活动通知]Nanjing GDG 2013年4月活动
  7. Ascll字符串转换到二进制字符串
  8. flask创建虚拟环境
  9. 步步为营100-开发前的思考
  10. 公司小规模纳税人税务零申报操作说明
  11. 用Python弹奏周董的《菊花台》是什么效果
  12. Altium Designer 高级篇 (一) - 元器件库的建立和使用以及导入
  13. Linux 中最好的 CHM 文件阅读器
  14. linux 运行有道词典,Linux有道词典软件安装
  15. SAP PS 后台配置
  16. 北邮通信博士带你秒懂 4G/5G 区别(附带通信发展史)
  17. 那些好玩的生成器网站
  18. 日期计算器输入天数计算日期_如何在Windows计算器中执行日期计算
  19. 基于词表和N-gram算法的新词识别实验
  20. AI医学影像千亿长坡,“医疗AI第一股”鹰瞳科技为何能滚起雪球?

热门文章

  1. Linux(Centos7.8)中conda虚拟环境搭建LSTM神经网络基于django3.1.2的api接口
  2. 如何修改DOSBOX的窗口大小
  3. 直角三角形面积Java_怎么用Java计算三角形的周长和面积
  4. 鼠眼看Linux调度器
  5. Live800:在线客服系统如何为客服减负?
  6. Win11安卓子系统无法启动怎么办?安卓子系统启用虚拟机平台教程(确保在可选的Windows功能中启用虚拟机平台)
  7. 全部重点排污企业名录(整理成Excel更新至2021年)
  8. ubuntu测网速方法
  9. geom_segment 新技能get
  10. 续航超1000km,极氪成为宁德时代麒麟电池全球量产首发品牌 | 美通社头条