Kam*_*mil 1 extension-methods kotlin
我正在尝试创建这样的扩展函数:
fun UHFTAGInfo.toReadUhfTagInfo(): ReadUhfTagInfo {
return ReadUhfTagInfo(this.epc, this.count, this.rssi.toIntOrNull())
}
Run Code Online (Sandbox Code Playgroud)
它应该转换UHFTAGInfo(从 java 库)到ReadUhfTagInfo(我在 Kotlin 中的类)。
我尝试像这样使用它:
UHFTAGInfo i = getUHFTAGInfo();
ReadUhfTagInfo ri = i.toReadUhfTagInfo();
Run Code Online (Sandbox Code Playgroud)
此时我的toReadUhfTagInfo函数位于顶层,但最后我想将它放在我的 ReadUhfTagInfo 类中,如下所示:
class ReadUhfTagInfo(var epc: String, var cnt: Int, var rssi: Int?)
{
fun UHFTAGInfo.toReadUhfTagInfo(): ReadUhfTagInfo {
return ReadUhfTagInfo(this.epc, this.count, this.rssi.toIntOrNull())
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以从 Java 调用 Kotlin 扩展函数,但是您不能使用扩展函数语法来调用它们,您必须像静态方法一样调用它们。例如,如果您定义
// file: Foo.kt
fun Bar.baz() { ... }
Run Code Online (Sandbox Code Playgroud)
那么在 Java 中,你可以将其称为
FooKt.baz(bar);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |