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来解决这个问题,但这是编译器中的错误吗?
答案 0 :(得分:1)
除了使用Scala Eclipse插件,我似乎无法重现这一点,所以在结束之前我会等待它稳定下来。
答案 1 :(得分:1)
您有两个Entity
引用,一个用于您的界面,另一个用于javax.persistence.Entity
。
尝试用完全限定名替换第二个,删除导入:
package iMP2020.domain;
public interface Entity {
public Serializable getId();
}
和
package iMP2020.domain;
@javax.persistence.Entity
public class Asset {
答案 2 :(得分:0)
我不认为这是一个错误。 导入与包成员具有相同的名称是没有意义的。