Подтвердить что ты не робот

Постоянно скрытое предупреждение в приложении scala

При запуске приложения Scala я получаю следующее предупреждение:

WARN - импортированные `SVNProperties 'постоянно скрыты по определению объекта SVNProperties в ядре пакета, в строке 4 приложения/ядра/SVNResource.scala

Что это может означать?

4b9b3361

Ответ 1

Вероятно, у вас есть код, который выглядит примерно так:

object Hidden {
  import scala.collection.immutable
  object immutable { def x = 7 }
}

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

В частности, похоже, что вы пытались импортировать SVNProperties в SVNResource.scala, за исключением того, что SVNResource.scala определяет свой собственный SVNProperties, который скрывает импорт.

Ответ 2

Я столкнулся с этим предупреждением после перемещения некоторых классов из одного пакета в другой. Я предполагаю, что был конфликт между новым местоположением и бинарниками из старого местоположения. В моем случае это помогло:

sbt clean

Ответ 3

Это случилось со мной после перехода класса из одного пакета в другой, как в случае с астасией. Я побежал sbt clean без везения. Для жизни меня я не мог найти класс в старом месте.

Однако у меня были другие ошибки, которые мешали мне строить. Когда я исправил их, эта ошибка исчезла. Я предполагаю, что до тех пор, пока вы не сможете построить чисто, sbt все еще думает, что у вас есть класс в старом пакете, и включает эту ошибку с любыми другими ошибками сборки, которые мешают вам строить.

Мой совет? Проверьте другие ошибки компиляции и исправьте эти - вы можете ошибочно получить эту ошибку из-за sbt, имеющего устаревшее представление о структуре вашего пакета с момента его последней успешной сборки.

Ответ 4

У меня был основной класс с именем Server, и я создавал причал в основном классе следующим образом.

 import org.eclipse.jetty.server.Server

 var server:Server=new Server()

Я получил предупреждение ниже при запуске sbt run

 > [warn] /home/xxx/xxx/xxx/src/main/scala/com/xxx/xxx/main/Server.scala:3:

> imported `Server' is permanently hidden by definition of object Server in package main
    [warn] import org.eclipse.jetty.server.Server
    [warn]                                 ^
    [warn] one warning found

Я переименовал свой основной класс, и предупреждение исчезло.

Ответ 5

Я получил это предупреждение, когда мой класс импортирует классы в один и тот же пакет. После удаления я удаляю предупреждения.