是否可以使用Kotlin val(属性)覆盖Java getter(方法)?

Vic*_*tor 17 java kotlin

例如:

Java的:

public class Foo {

    public int getSomething() {
        return 1;
    }

}
Run Code Online (Sandbox Code Playgroud)

科特林:

class Bar : Foo() {

    // works
    override fun getSomething() = 2

    // doesn't work ('something' overrides nothing)
    // override val something = 2

}
Run Code Online (Sandbox Code Playgroud)

我认为这val something = 2将转换为public int getSomething() { return 2; }Java字节码.

zsm*_*b13 11

这似乎是一个已知的问题在这里.显然这是一个复杂的问题,不太可能很快得到解决.

安德烈·布雷斯拉夫对此问题的最初回应:

不幸的是,这是一个相当深刻的问题.我们不可能以你想要的方式让它发挥作用

在问题页面上,您可以看到它在多平台项目方面变得更加复杂.