Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java方法作为scala函数_Java_Scala - Fatal编程技术网

使用java方法作为scala函数

使用java方法作为scala函数,java,scala,Java,Scala,如果Java是一个Java库,您可以这样做吗 class TryStuff(method:() => Any) { private val lib: Java = new Java val tryStuff:TryStuff = new TryStuff(lib.method) } 是否有办法将lib.method转换为scala对象 val tryStuff:TryStuff = new TryStuff(x => lib.method(x)) 或者更简洁地说 v

如果Java是一个Java库,您可以这样做吗

class TryStuff(method:() => Any) {
   private val lib: Java = new Java

   val tryStuff:TryStuff = new TryStuff(lib.method)
}
是否有办法将lib.method转换为scala对象

val tryStuff:TryStuff = new TryStuff(x => lib.method(x))
或者更简洁地说

val tryStuff:TryStuff = new TryStuff(lib.method _)

你不需要做任何特别的事情。Java方法已准备好在Scala代码中调用

在您的示例中,可以使用任何没有参数的方法,在本例中,我使用java.io.File类的exists()方法:

import java.io.File

class TryStuff(method:() => Any) {
    private val lib: File = new File("a.file")
    val tryStuff:TryStuff = new TryStuff(lib.exists)
}

你说的图书馆是什么意思?包裹我没有看到代码中有任何问题,或者更简单地说:
val tryStuff=newtrystuff(lib.method)
它没有编译。TryStuff构造函数中传递的“method”函数不带参数。这只是一个示例,原始代码也没有编译。