Постоянно скрытое предупреждение от разбора Scalac кода Java - ошибка компилятора? - PullRequest
3 голосов
/ 30 мая 2011

Скалярный синтаксический анализатор 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 {

, где он жалуется на импорт.Джавак довольно счастлив.Обратите внимание, что мне не нужно ссылаться на мою версию класса - просто его существования достаточно, чтобы вызвать предупреждение об импорте.

Я могу исправить это, удалив импорт и явно ссылаясь на @Entity, ноэто ошибка в компиляторе?

Ответы [ 3 ]

1 голос
/ 01 июня 2011

Кажется, я не могу воспроизвести это, кроме как с помощью плагина Scala Eclipse, поэтому я подожду, пока он стабилизируется, прежде чем прийти к выводу.

1 голос
/ 02 апреля 2014

У вас есть две ссылки Entity, одна для вашего интерфейса, а другая для javax.persistence.Entity.

Попробуйте заменить вторую на полное имя, удалив импорт:

package iMP2020.domain;

public interface Entity {
    public Serializable getId();
}

и

package iMP2020.domain;

@javax.persistence.Entity
public class Asset {
0 голосов
/ 30 мая 2011

Я не думаю, что это ошибка. Для импорта не имеет смысла иметь такое же имя, как у члена пакета.

...