web-dev-qa-db-ja.com

JavaからKotlinのシールドクラスにアクセスする

これまで、私はこのKotlin密封クラスを使用してきました。

sealed class ScanAction {
   class Continue: ScanAction()
   class Stop: ScanAction()
   ... /* There's more but that's not super important */
}

これは私のKotlinとJava=コードの両方でうまく機能しています。今日、代わりにオブジェクトを使用するようにこのクラスを変更してみました(余分なクラスのインスタンス化を減らすために推奨されています):

sealed class ScanAction {
   object Continue: ScanAction()
   object Stop: ScanAction()
}

私は他のKotlinファイルでこの簡単な豆を参照することができますが、私のJavaファイルでそれを使用するのに苦労しています。

Javaで参照しようとすると、次の両方のキックバックコンパイルエラーが発生しました。

ScanAction test = ScanAction.Continue;

ScanAction test = new ScanAction.Continue();

Javaでインスタンスを参照する方法を誰か知っていますか?

11
ssawchenko

INSTANCEプロパティを使用する必要があります:

ScanAction test = ScanAction.Continue.INSTANCE;
18
Francesc