<运营商>未定义参数类型Integer,int

时间:2014-09-27 08:17:22

标签: java random primes

我的编码是在1到1000的范围内随机创建100个素数,但我在

时收到错误消息The operator > is undefined for the argument type(s) Integer, int
Integer date;
int count = 0;
for (int i = 0; i < 100; i++)
{
    date = new Integer(value.nextInt(1000));
    if(date > 1 && prime(date) != -1)`
        tree.add(date);
}

我猜它会产生错误,因为我们不能说整数&gt; 1?但那我们该怎么说呢?

对于prime(date) != -1),我不清楚其含义是什么,看起来不必要。

2 个答案:

答案 0 :(得分:5)

Java编译器最后一次产生错误的版本是1.4版本,在2004年被1.5取代,当时语言规范引入了使示例编译所需的自动装箱行为而没有问题。

我已经尝试使用Java 8编写代码并且编译得很好(在添加明显缺失的细节之后)。

解决方案似乎很清楚:要么使用现代Java编译器,要么不强制它在1.4兼容模式下工作,或者,如果您碰巧在遗留项目上工作,请遵守管理Java相关历史版本的规则。 &#34;手动拆箱&#34; Integer上的方法是intValue()

如果你碰巧在一个稍微过时的Eclipse上使用Java 8,并且你的项目是基于maven的,那么你可能会遇到这个问题,因为m2e插件不能识别1.8版并且回到默认状态,这是1.4。在这种情况下,我建议升级到最新的Eclipse(Luna)。

答案 1 :(得分:0)

如果由于某种原因绑定到早期版本的Java,请尝试date.intValue() > 1