У меня есть объект пакета Scala с объявленными в нем vals. Поэтому я могу использовать общие объекты, не каждый раз импортируя их все.
Тем не менее, я хотел бы использовать эти определения в Java также, однако Java не позволяет импортировать что-либо называемое "пакетом", которое является именем класса, созданного Scala.
Есть ли способ обойти это, что я могу иметь эти объекты пакета и импортировать их в Java
Обновление. Следующее принятое решение. Однако для удобства чтения добавлен промежуточный класс:
package.scala:
package nl.mysoft.scalapackage
package object easy {
val one = 1
}
Промежуточный класс:
package nl.mysoft.javapackage;
import nl.mysoft.scalapackage.easy.package$;'
public class EasyE {
public static final package$ e = package$.MODULE$;
}
И использование:
package nl.mysoft.javapackage.usage;
import static nl.mysoft.javapackage.EasyE.e;
public class EasyTest {
public static void main(String[] args) {
System.out.println(e.one());
}
}
Попробуй это
ex.scala.package.scala:
package ex
package object scala {
def one = 1
}
ex.java.Test.java:
package ex.java;
import ex.scala.package$;
public class Test {
public static void main(String[] args) {
System.out.println(package$.MODULE$.one());
}
}