use*_*305 6 java division modular-arithmetic
我一直收到错误"对于参数类型,运算符%是未定义的整数,整数"我不太确定为什么会发生这种情况.我认为,因为模块化除法不能返回具有整数值的小数.
这是在我正在创建的程序中的方法中发生的.代码如下:
public void addToTable(Integer key, String value)
{
Entry<Integer, String> node = new Entry<Integer, String>(key, value);
if(table[key % tableSize] == null)
table[key % tableSize] = node;
}
Run Code Online (Sandbox Code Playgroud)
该方法未完成但错误发生在
if(table[key % tableSize] == null)
Run Code Online (Sandbox Code Playgroud)
和
table[key % tableSize] = node;
Run Code Online (Sandbox Code Playgroud)
任何帮助或建议将不胜感激.
我可以Integer % Integer在Java 1.5和1.6中成功编译一些示例代码,但不能在1.4中编译.
public static void main(String[] args)
{
Integer x = 10;
Integer y = 3;
System.out.println(x % y);
}
Run Code Online (Sandbox Code Playgroud)
这是1.4中的错误:
ModTest.java:7: operator % cannot be applied to java.lang.Integer,java.lang.Integer
System.out.println(x % y);
^
Run Code Online (Sandbox Code Playgroud)
最合理的解释是,由于Java在1.5中引入了自动装箱和自动装箱,你必须使用1.5之前的Java编译器,比如1.4.
解决方案:
Integer.intValue()提取int
值,您可以使用该值%.| 归档时间: |
|
| 查看次数: |
52045 次 |
| 最近记录: |