用kotlin扩展属性的java.lang.VerifyError
我试图像这样用kotlin扩展Java类的数字类型属性:
// Java class public class Person { private Number old; public Number getOld() { return old; } public void setOld(Number a) { this.old = a; } }
和我的Kotlin代码:
// Kotlin code var Person.age: Number inline get() = old inline set(value) { old = value } fun main(args: Array<String>) { val person = Person() person.age = 20 }
运行代码,它会给出错误:
java.lang.VerifyError: Bad local variable type Exception Details: Location: net/wenris/fx10/EntryKt.main([Ljava/lang/String;)V @20: aload_3 Reason: Type integer (current frame, locals[3]) is not assignable to reference type Current Frame: ...
这里有什么问题?
顺便说一句,如果我删除set()方法的内联关键字,它会很好。