如何在Java中将“Integer”数据转换为“int”数据类型?

时间:2018-04-29 02:54:54

标签: java

Integer key = new Integer(2);
int mod = 13;
int index = key%13;

"Error:java: bad operand types for binary operator '%' first type:  Integer  second type: int"

我想将密钥%13转换为int类型值并访问它!

2 个答案:

答案 0 :(得分:0)

如果您不需要使用特定的编译器,请将编译器更改为1.5或更高,因为AutoBoxing是Java SE 5中引入的新功能。

  

Autoboxing 是Java编译器在基元类型与其对应的对象包装类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,依此类推。如果转换是另一种方式,则称为拆箱。 (来源:Oracle, The Java Tutorials

可能的解决方案是:

  1. 在IDE中更改Java编译器的版本。
  2. 编译时在javac命令中使用-source 1.5(或更高版本)选项。

答案 1 :(得分:0)

这些是将Integer转换为int的最佳方式。

在Java 5及更高版本中,只需使用自动拆箱; e.g。

  Integer i = new Integer(5);  // (not the best way to create an Integer ...)
  int ii = i;    // the value is automatically unboxed.

在Java 5之前,使用Integer::intValue手动取消装箱值; e.g。

  Integer i = new Integer(5);
  int ii = i.intValue();

(使用toStringparseInt的建议非常低效。)

您的示例代码应该编译。如果它不是那么它意味着两件事之一:

  1. 您的Java编译器源代码合规性级别设置为Java 1.4.x或更早版本。这可能是由于构建脚本中的显式-source选项,您正在使用的构建工具中的默认选项或IDE中的设置。无论哪种方式,你都应该解决它。

  2. 您使用的Integer类型不是java.lang.Integer。换句话说,您已经声明了自己的Integer类或从某个(被误导的)第三方库中导入了一个类。