假设我们有一个Java静态方法:
//Java code
public static void printFoo() {
System.out.println("foo");
}
Run Code Online (Sandbox Code Playgroud)
可以在Kotlin中调用该方法吗?
我正在使用FunKTionale库来执行模式匹配.然后,当我初始化变量时,如下所示:
private lateinit var socket = Option.None
Run Code Online (Sandbox Code Playgroud)
以下转换是不可能的:
socket = socket.map {
selectedDevice.createRfcommSocketToServiceRecord(MY_UUID).apply {
connect()
}
}
Run Code Online (Sandbox Code Playgroud)
因为套接字的类型是
Option.None
Run Code Online (Sandbox Code Playgroud)
但是如果我将socket变量初始化为
private lateinit var socket: Option<BluetoothSocket> = Option.None
Run Code Online (Sandbox Code Playgroud)
地图功能有效.Option.None对象扩展
Option<Nothing>
Run Code Online (Sandbox Code Playgroud)
并被铸造(在这种情况下)
Option<BluetoothSocket>
Run Code Online (Sandbox Code Playgroud)
那么,这怎么可能呢?