2017-06-30 4 views
0

は、Javaでのかく乱のチュートリアルに続いて、彼らは次の呼び出しLongEventが無いargument-つまり、デフォルトのコンストラクタを使用してインスタンス化される交換方法:: kotlinの新機能ですか?

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

を作ります。 new LongEvent()

Kotlinの同等の行では、::newにエラーが発生しています。 Kotlinの::newの正しい構文は何ですか?

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

答えて

1

kotlinでconstructor reference expression::LongEventです。

コンストラクタは、メソッドやプロパティと同様に参照できます。 ::演算子とを使用して、クラス名を追加して、コンストラクタを参照します。

+0

ありがとうございました。申し訳ありませんが、重複した質問を見つけるために何を検索するのか分かりませんでした。 –

+0

@AdamHughesまったくありません。詳細はこちらをご覧ください:https://kotlinlang.org/docs/reference/reflection.html#constructor-references –