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



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。导入与包成员同名是没有意义的。

相关内容

  • 没有找到相关文章

最新更新