请翻译一下在eclipse更改编译器中编译器报错的原因

这是我项目升级时碰到的问题,
我曾经在eclipse3.6(jdk1.7)里用Spring3+hibernate4+struts2+spring&data&jpa环境时,没有任何报错,编译运行也成功,
但升级到eclipse4.2.5,jdk1.8,架构用的是Spring4.2.5+hibernate5.1.0+struts2+spring&data&jpa,下面这个文件报错,但编译运行却都没有问题,不知道为什么会报错,虽然不影响运行,但看着不舒服。
文件是这样的
import&java.util.ArrayL
import&java.util.L
import&java.util.M
import&javax.persistence.JoinC
import&javax.persistence.ManyToO
import&javax.persistence.MappedS
import&javax.persistence.OneToM
import&javax.persistence.OrderBy;
import&javax.persistence.T
import&com.huizhiyida._msshje.base.utils.FieldV
@MappedSuperclass
public&abstract&class&TreeEntity&T&extends&TreeNodeEntity&?&,&TGroup&extends&TreeEntity&T,&TGroup&&&extends&BaseEntity&{
protected&String&
protected&Integer&orderindex&=&0;
protected&TGroup&
protected&List&TGroup&&children&=&new&ArrayList&TGroup&();
protected&List&T&&nodes&=&new&ArrayList&T&();
@ManyToOne
@JoinColumn(name&=&&parent_id&)
public&TGroup&getParent()&{
public&void&setParent(TGroup&parent)&{
this.parent&=&
@OneToMany(mappedBy&=&&parent&)
@OrderBy(&id&)
public&List&TGroup&&getChildren()&{
public&void&setChildren(List&TGroup&&children)&{
this.children&=&
@OneToMany(mappedBy&=&&group&)
public&List&T&&getNodes()&{
public&void&setNodes(List&T&&nodes)&{
this.nodes&=&
public&String&getName()&{
public&void&setName(String&name)&{
this.name&=&
public&Integer&getOrderindex()&{
public&void&setOrderindex(Integer&orderindex)&{
this.orderindex&=&
这个问题我连描述都不知道怎么描述了,希望有人能帮我解决。或者告诉我到什么地方找解决方案。
我在eclipse官网上不知道为什么注册不上。
回复讨论(解决方案)
1.&jdk版本配置不会
3.&build&path出问题
遇到过这样的问题,找个@注解删掉保存一下,然后ctrl+z再保存,问题解决
1.&jdk版本配置不会
3.&build&path出问题
JDK配置的都是1.8,这个没错;
并不缺包,因为提示的不是找不到,而是说我这个泛型不是个entity;
build&path出问题是指哪方面问题
这个项目原来都是正常的,而且,只是提示错误,编译和运行都没问题。继承该类的子类也都运转正常,功能也可以正常使用。
遇到过这样的问题,找个@注解删掉保存一下,然后ctrl+z再保存,问题解决
这个方法试过无数次了,包括我换了不同版本删掉重新导入,都不行。
现在能确定不是eclipse版本的问题,因为我换了不同的eclipse版本,都出这个问题。
也不是jdk的问题,我换回到原来用的eclipse版本,且用原来的jdk1.7,重新导入这个项目,依然报这样的错误。
那就应该是我升级maven和maven依赖包的问题了。
maven:3.0.4--&3.3.9
spring:3.2.1--&4.2.5
hibernate:4.1.10--&5.1.0
其他的相应都升级了。
高我的脾气,就屏蔽掉
遇到过这样的问题,找个@注解删掉保存一下,然后ctrl+z再保存,问题解决
这个方法试过无数次了,包括我换了不同版本删掉重新导入,都不行。
那就不清楚了,我之前遇到一次就那么解决了
这个jdk版本,你选的是几?1.4?
改成最大的版本号。
这个jdk版本,你选的是几?1.4?
改成最大的版本号。
从你的提示来看,也不是这个问题。。。。忽视此回复
我又错了,我把另一个项目在原来的eclipse下升级了hibernate和spring,在原来的eclipse(最高jdk1.7)下没有问题,但把这个项目切出来,删掉所有项目信息,导入到4.5的eclipse(jdk1.8)下,就开始报错,看来还是环境的问题。
基本可以确定是环境问题,我把eclipse4.5下的项目,去掉project相关信息,只留原码后,导入到eclipse3.2中,一切正常,不报错;将eclipse3.2中的项目只留源码导入到eclipse4.5下,同样的地方会报错。可能是eclipse4.5下对JPA的检查严格了,我试了一下,去掉windows--&preferences--&validation里的JPA&Validator的build选项,会不显示错误,但实际上,在eclipse3.2中这个选项是选中的,我也试着将其里面的详细条目一条一条删除测试,但没有作用,也不知道是怎么回事。我想可能是eclipse4.5所用的JPA检验插件进行了更严格的检测,但是这不知道算不算一个BUG,因为很多检测出来的错误其实是不影响编译和运行的。其实还有其它错误,我有一个实体类某个属性上的mappedby也报错,而这个类里有我定义的不与数据库关联的属性及其get和set方法上都标注了@Transient,我把标注在属性上的@Transient去掉,就不报错了。这不是很奇怪的事情吗?可惜的是,我始终注册不上eclipse网站,也登录不上,无法报这个问题上传咨询,有哪位朋友能上去的,能否帮我问问呢?
经过我不懈且神经质的努力,终于解决了,可能理解的不太对,所以下面的说法未必正确,但我解决的方法确实是这样,希望高手指正我的错误,因为我确实对很多东西都理解不深,仅仅拿来用而已。
原来的项目导入到eclipse3.2中的时候,查看项目properties--&project&Facets,这时默认不不选中JPA的,而在4.5.2中的时候,JPA是选中的,如图。
当选中JPA项目时,就会用JPA的规则进行验证,所以就会报错,即使是在3.2中,只要选中了JPA,也会报错。因为我的文件里用的是泛型,在实际运行时,泛型对应的关系可以转化为实际对应的实体,但是在此之前,它确实不是一个entity,因为它是一个继承于abstract类的泛型,不可能实体化。所以JPA的校验一定会报错,要关掉这个错误,可以选择在项目properties--&JPA(注意,project&Facets中选中JPA,才会显示此项)--&Error/Warnnings中,选中Enable&project&spacific&settings,以单独对这个项目编辑报错项,然后展开Attribute,将下面的Target&entity&is&not&an&entity由Error改成其它(我改成了Info),然后就不再会显示这个错误了,如图。
当然这样也有一个不好之处,就是其它情况下的这种错误,也不报错了。那我程序中的这个错误究竟是我写法有问题,还是JPA验证没有考虑到这个情况,就不得而知了。
选中这个JPA有什么用呢?看一下下面这篇文章,可能会有所启发,可惜我不是这样用的。而且我也不知道,我这种包含泛型的写法,能不能适用这种方法,等有时间再测试一下吧。
http://my.oschina.net/hcliu/blog/401262综合技术 - 开发工具(32)
1 Cannot merge new index 67208 into a non-jumbo instruction
新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535;综合上述因素,代码在安装的时候,不能通过验证,所以安装失败。
在project.properties文件中添加dex.force.jumbo=true,然后清理工程,并重新编译。
2 Access restriction: The type * is not accessible due to restrict
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:100134次
积分:3585
积分:3585
排名:第6217名
原创:257篇
评论:43条
文章:62篇
阅读:26983
(1)(8)(3)(25)(73)(63)(39)(39)(9)eclipse C++ 为什么main函数一定要是int型,不然编译器就会报错
[问题点数:40分,结帖人china_41]
eclipse C++ 为什么main函数一定要是int型,不然编译器就会报错
[问题点数:40分,结帖人china_41]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 eclipse 添加编译器 的文章

 

随机推荐