使用java方法作为scala函数
如果Java是一个Java库,您可以这样做吗使用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
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”函数不带参数。这只是一个示例,原始代码也没有编译。