scalac Java解析器反对我的Java代码
imported `Entity' is permanently hidden by definition of object Entity in package domain Asset.java
这似乎是导入和正在编译的包中具有相同名称的类之间的冲突。
我的包裹里有一个
package iMP2020.domain;
public interface Entity {
public Serializable getId();
}
与从不同包导入的类同名
package iMP2020.domain;
import javax.persistence.Entity; // compiler warning
@Entity
public class Asset {
它抱怨进口。Javac非常高兴。请注意,我不必引用我的类版本——只要它的存在就足以在导入时触发警告。
我可以通过删除导入并显式引用@Entity来解决这个问题,但这是编译器中的错误吗?
除了Scala Eclipse插件,我似乎无法重现这一点,所以我将等待它稳定下来,然后再得出结论。
您有两个Entity
引用,一个用于接口,另一个用于javax.persistence.Entity
。
尝试用完全限定名称替换第二个,删除导入:
package iMP2020.domain;
public interface Entity {
public Serializable getId();
}
和
package iMP2020.domain;
@javax.persistence.Entity
public class Asset {
我不认为这是一个bug。导入与包成员同名是没有意义的。