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

2 つのEntity参照があります。1 つはインターフェイス用で、もう 1 つは 用javax.persistence.Entityです。

インポートを削除して、2 番目のものを完全修飾名に置き換えてみてください。

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 に答える