Я пытаюсь взаимодействовать Scala с Java, и мне удалось создать проект Maven (репозиторий здесь ), который прекрасно компилируется из командной строки (mvn clean package
).
Однако я продолжаю сталкиваться с проблемой, заключающейся в том, что моя IDE (код VS) вообще не понимает взаимодействие.
Проблемы
Файл AccessScala.java
пытается получить доступ к переменной в WithinModule.scala
.
package me.parent.jModule;
import me.parent.jModule.WithinModule;
public class AccessScala {
public static void main(String[] args) {
WithinModule within = new WithinModule();
// -- this is like a static variable, but Scala doesn't allow that
// System.out.println(WithinModule.string());
// -- this is the auto-generated getter
System.out.println(within.string());
// -- this getter was manually added
System.out.println(within.getString());
}
}
VS Код создает три проблемы:
- Импорт
me.parent.jModule.WithinModule
не может быть решен: AccessScala[3,8]
WithinModule
не может быть решен в тип: AccessScala [7,9]
WithinModule
не может быть преобразован в тип: AccessScala [7,35]
Настройка проекта
Проект состоит из двух модулей, но сейчас релевантно только jModule
. он содержит Java и Scala код в отдельных папках. sModule
содержит некоторый код Scala, к которому я также хотел получить доступ, но моя текущая проблема не имеет ничего общего с модулями Maven и всем, что VS Code понимает Scala - Java подключений.
> parent
| > jModule
| | > src/main
| | | > java/me/parent/jModule
| | | | > AccessScala.java
| | | > scala/me/parent/jModule
| | | | > WithinModule.scala
| | > build.sbt
| | > project/build.properties
| | > pom.xml
| > sModule
| | > src/scala/me/parent/sModule
| | | >ExternalModule.scala
| | > pom.xml
| | > build.sbt
| | > project/build.properties
| > build.sbt
| > project/build.properties
| > pom.xml
VS Code
Я использую Java Extention Pack , Scala -Металлы и Scala Синтаксис
Оба для Java и Scala обнаруживает ошибки и т.д. c, поэтому он знает, что Scala есть.
Вопрос
Почему VS Code жалуется и что я могу сделать, чтобы это сработало? Есть ли способ вообще, или мне просто нужно использовать IntelliJ (у меня там другие проблемы, следите за обновлениями;)