是否有可能在android studio中使用java文件中的scala对象?

问题描述:

我设置了一个android项目来使用java和scala。 (android gradle scala插件)​​。 Scala文件位于src/scala目录,而java文件位于src/java目录中。
有什么办法可以在java文件中使用scala对象吗?是否有可能在android studio中使用java文件中的scala对象?

+1

是的。只要使用它们。 –

+0

@GáborBakos:如果我只是使用它们,它不起作用。 “它说不能解决符号” – Ashwin

+0

你还[还添加了Scala库依赖项](https://github.com/saturday06/gradle-android-scala-plugin#3-add-scala-library-dependency)? (我认为是的,因为Scala部分有错误。)或者你的问题是在同一个项目中使用Scala对象? –

以下工作对我来说(虽然不是Android的,只是JVM,斯卡拉2.11.8):

斯卡拉:

object Simple { 
    val s = 3 
    def hello(sby: String) = s"Hello $sby" 
} 

的Java:

//imports 

public class X { 
    public static void main(String[] args) { 
     System.out.println(Simple$.MODULE$.hello("Ashwin")); 
     int s = Simple$.MODULE$.s(); 
     System.out.println(s); 
     //This also works for recent Scala versions, 
     //though in this case you cannot use the singleton object references: 
     Simple.s(); 
     Simple.hello("Ashwin"); 
    } 
} 

Here是一个很酷的教程关于如何将scala整合到android应用程序中。

当然,您必须将scala代码整合到java中,如特定的API(例如,它可以使用scala等中的BeanPropety进行注释)。你可以将java整合到scala中,反之亦然,但在我看来,第一种方法更有用。

看到这个article

我还收到了有关scala的book中有用的提示,从第17章:与java互动。