当前位置: 首页 > 面试题库 >

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

吴浩皛
2023-03-14
问题内容

例如:

Java:

public class Foo {

    public int getSomething() {
        return 1;
    }

}

科特林:

class Bar : Foo() {

    // works
    override fun getSomething() = 2

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

}

我以为val something = 2它将转换为public int getSomething() { return 2; }Java字节码。


问题答案:

这似乎是一个已知的问题在这里。显然,这是一件复杂的事情,不太可能很快解决。

来自安德烈·布雷斯拉夫的原始答复:

不幸的是,这是一个相当深的问题。我们不太可能以您想要的方式使其工作

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



 类似资料:
  • 问题内容: 你能 声明这样 的函数吗? 然后像这样 重新声明 它… 这样可以覆盖函数吗? 可以吗 问题答案: 编辑 解决此答案未直接解决原始问题的评论。如果您是通过Google搜索到达的,请从此处开始 有一个名为override_function的函数可以实际使用。但是,由于此函数是Advanced PHP Debugger扩展的一部分,因此很难为生产使用提供参数。因此,我要说“否”,不可能以原始

  • 假设我有一个这样的类: 假设我稍后创建了一个Foo对象,并选择覆盖f1的方法定义,如下所示: 如果我尝试: 我得到: 当然,我正努力让“我的f1”出版。我也希望f1是可选的。这是怎么回事?有没有可能在namedtuple中定义一个方法的默认实现,然后在new中重写它?

  • 我有几个POJO,这将有一个货币数额。我的想法是创建一个通用对象(由货币和值组成),然后每当我想在我的POJOs中表示一个货币金额时,就会使用它: 由于将在多个POJO中使用,我无法用注释和属性,因为在所有情况下,列名并不总是相同的。有没有办法注释属性(如上例中的)以提供和属性的列名,以便jOOQ在映射/取消映射POJO时理解它们,类似于Hibernate解释请问?

  • 问题内容: 我正在使用Sphinx的autodoc插件来自动记录一组模块。我有一个函数accepts ,我想重写文档以显示Python stdlib文档使用的稍微更好的样式。 是否可以覆盖特定功能的自动文档输出? 问题答案: 可以使用以下方法覆盖签名: 但是,具有覆盖签名的函数不会与通过引入的其他函数进行排序。对每个函数使用显式指令可以解决此问题: 加成 您还可以附加到文档字符串: 要覆盖签名和文

  • 我的测试属性将被放置在生产属性中的属性覆盖。当时,我两人都给起了名字,但它不起作用,所以我就像这篇文章中说的那样,改成了并使用profile。现在看起来就像贝娄(kotlin): 在中,我只将此属性设置为,而在中,则设置为。 这个测试失败了。完整示例可在github上找到 Thx提前。

  • 我有一个通过Spring云库使用Netflix Hystrix的Spring Boot应用程序,一切正常。 我想重写Hystrix的一些基本属性,例如和/或。不幸的是,我找不到一些开箱即用的Spring Boot属性来执行此操作,那么在应用程序启动时,我需要做什么来设置这些属性呢?