IntelliJ и Scala

Я использую Intellij для разработки некоторых scala. Обычно я использую Eclipse, но был убежден другом дать IntelliJ go. Нахождение недостатка «проблем» вызывает настоящую боль. Но есть еще одна проблема.

У меня есть следующий фрагмент кода в тесте:

import org.junit.Test
import org.mockito.{Mockito, Mock}
import java.util
...

util.ArrayList aList = Mockito.mock(classOf[util.ArrayList])
aList.add("")

Итак, во-первых, я получаю красную полосу в правой части экрана редактора (позор там нет «проблемного вида»), и когда я наводил на нее курсор, он говорит, что Невозможно разрешить символ aList .

Может ли кто-нибудь помочь мне понять это?

Если я изменил импорт ArrayList на import java.util.ArrayList и удалю префикс в коде, я получаю 3 сообщения об ошибках:

Can not resolve symbol aList
Reference must be prefixed
Use of postfix method call

это все на линии:

 ArrayList aList = Mockito.mock(classOf[ArrayList])

Так может ли кто-нибудь помочь мне понять эту коллекцию ошибок? Нет полезной помощи от IntelliJ, и поиск в Google не проливал свет.

Наконец, если есть кто-нибудь, кто использовал IntelliJ и Eclipse для разработки scala + java, вы могли бы высказать мне свое мнение. Мне кажется, что IntelliJ немного s ** t. Или, может быть, я просто не понимаю ...

Спасибо всем.

5
добавлено
Просмотры: 2
nl ja de
Возможно, вам стоит просто прочитать, как переменные объявлены в Scala. Синтаксис val foo: SomeType = ...
добавлено автор Kim Stebel, источник
«Проблемы» очень выгодно заменены «Инспекциями» IDEA, которые полностью настраиваются. Попробуйте «Анализировать -> Проверить код».
добавлено автор fge, источник
Каждая среда IDE привыкает. Я не развиваюсь в Scala, только Java и только в IntelliJ.
добавлено автор Peter Lawrey, источник
Вы можете найти школу Scala в Twitter .
добавлено автор Jonathan, источник
Хорошо умные ребята. Я изменил строку на val aList = Mockito.mock (classOf [util.ArrayList [String]]) , но почему мне нужно сделать префикс для импорта?
добавлено автор Adam Davies, источник
Анализ> Проверка кода - Фантастический. Все еще изучаю IntelliJ. Может ли кто-нибудь пролить свет на сообщение «Referance must prefixed» msg?
добавлено автор Adam Davies, источник

1 ответы

Что касается префикса: с

import java.util

вы импортируете пространство имен util, т. е. для доступа к классу внутри утилиты, которую вы должны написать util.ArrayList. Если вы хотите импортировать все внутри утилиты, вам нужно написать

import java.util._

специально импортировать ArrayList

import java.util.ArrayList
1
добавлено
Я понимаю выше, но почему IntelliJ говорит: «Ссылка должна быть префикс»? Есть ли что-то неправильное в отношении полного импорта класса, такого как java.util.ArrayList?
добавлено автор Adam Davies, источник