3

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

4

3 回答 3

1

除了使用 Scala Eclipse 插件外,我似乎无法重现这一点,所以我将等待它稳定下来,然后再得出结论。

于 2011-06-01T19:15:16.773 回答
1

您有两个Entity引用,一个用于您的界面,另一个用于javax.persistence.Entity.

尝试用完整的限定名称替换第二个,删除导入:

package iMP2020.domain;

public interface Entity {
    public Serializable getId();
}

package iMP2020.domain;

@javax.persistence.Entity
public class Asset {
于 2014-04-02T15:46:38.123 回答
0

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

于 2011-05-30T12:15:49.093 回答