2014-10-22 2 views
1

У меня есть объект пакета Scala с объявленными в нем vals. Поэтому я могу использовать общие объекты, не каждый раз импортируя их все.Использование vals из объекта пакета scala в java

Однако я хотел бы использовать эти определения в Java, однако Java не позволяет импортировать что-либо называемое «пакетом», которое является именем класса, созданного Scala.

Есть ли способ обойти это, что я могу иметь эти объекты пакета и импортировать их в Java

Update Круги принятое решение. Однако, добавил промежуточный класс для читаемости:

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()); 
    } 
} 

ответ

2

Попробуйте

бывший .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()); 
    } 
} 
+0

Это было то, что я искал :) – dstibbe

Смежные вопросы