【问题标题】:How to replace ::new in kotlin? [duplicate]如何在 kotlin 中替换 ::new? [复制]
【发布时间】:2017-07-01 01:02:49
【问题描述】:

按照 Java 中的 Disruptor 教程,他们进行了以下调用

Disruptor<LongEvent> disruptor = new Disruptor<>(LongEvent::new, bufferSize, executor);

LongEvent 是使用无参数的默认构造函数实例化的,即。 new LongEvent().

Kotlin 中的等效行在 ::new 处引发错误。 Kotlin 中::new 的正确语法是什么?

# THIS IS INVALID
val disruptor = Disruptor<LongEvent>(LongEvent::new, bufferSize, executor)

【问题讨论】:

    标签: java kotlin


    【解决方案1】:

    kotlin 中的constructor reference expression::LongEvent

    构造函数可以像方法和属性一样被引用。 通过使用:: 运算符和添加类名 来引用构造函数。

    【讨论】:

    • 谢谢。抱歉,不知道要搜索什么才能找到那个重复的问题。
    • @AdamHughes 一点也不。你可以在这里看到更详细的信息:kotlinlang.org/docs/reference/…
    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多