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类型值并访问它!
答案 0 :(得分:0)
如果您不需要使用特定的编译器,请将编译器更改为1.5或更高,因为AutoBoxing是Java SE 5中引入的新功能。
Autoboxing 是Java编译器在基元类型与其对应的对象包装类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,依此类推。如果转换是另一种方式,则称为拆箱。 (来源:Oracle, The Java Tutorials)
可能的解决方案是:
答案 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();
(使用toString
和parseInt
的建议非常低效。)
您的示例代码应该编译。如果它不是那么它意味着两件事之一:
您的Java编译器源代码合规性级别设置为Java 1.4.x或更早版本。这可能是由于构建脚本中的显式-source
选项,您正在使用的构建工具中的默认选项或IDE中的设置。无论哪种方式,你都应该解决它。
您使用的Integer
类型不是java.lang.Integer
。换句话说,您已经声明了自己的Integer
类或从某个(被误导的)第三方库中导入了一个类。