Scalac解析Java代码时永久隐藏的警告 - 编译器错误?

时间:2011-05-30 11:32:13

标签: java scala scalac

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来解决这个问题,但这是编译器中的错误吗?

3 个答案:

答案 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)

我不认为这是一个错误。 导入与包成员具有相同的名称是没有意义的。