由于编译环境不同产生的两个问题(注解@Override和int与Integer的问题)
第一个问题:The method getCode() of type Code must override a superclass method(注解@Override)
第二个问题:Cannot cast from capture#6-of ? to int(int与Integer)
我们先说说出现的第一个问题,这个错误,是因为@Override注解使用错误导致
这个注解是Java5以后的元数据,也就是说,@Override注解是从jdk1.5以后才加入进来的
所以在jdk1.6之前使用该注解就会出错,如代码:
public class Code implements Codeiter{ @Override public String getCode() { String f; String[] fh={"+","-","*"}; int a,b; a = (int)(Math.random()*100); f = fh[(int)(Math.random()*3)]; b = (int)(Math.random()*100); return a+f+b; } }以上代码,在jdk1.6之前就会提示你 去掉@Override注解,而在jdk1.5以后的版本中,就正确。
如果此时我们去掉这个注解也可以
但是我想,现在很少用jdk1.5了吧
比如我用的就是jdk1.8,但是也出现了这个错误
如图:
[caption id="attachment_917" align="alignnone" width="1050"] jdk编译环境错误[/caption]
那是因为我们选者了错误的标签卡,为这里是选者的 windows -- Preferences--java -- Complier 正常情况下显示的不是这个选项卡内容
是因为我点击了有上角的Configure Project Specific Settings 然后选择的jdk版本,这样也可以
当然你也可以在项目那里右健选择windows -- Preferences--java -- Complier 去设置
出现的第二个问题也是因为jdk的问题,java从1.5以后可以从int自动装箱Integer类,而在此之前是不行的
如我的代码:
int usercount = (int) hibernateTemplate.find(hql, username).get(0);以上代码在jdk1.5或jdk1.5之前的版本是错误的,而在之后的版本就可以了
所以将jdk版本改为我当前的jdk1.8就可以了
出现以上两个问题是因为我在maven环境导入自己项目时发生的,就是说在创建maven项目时,默认jdk版本没有设置对
大家可以点击以下连接查看解决方法。
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情