1. ホーム
  2. enums

[解決済み] Kotilnでenumの "static "メソッドを作成するにはどうすればよいですか?

2023-05-10 17:41:25

質問

Kotlinでは、enumクラスに対して以下のような静的メソッドが用意されています。 valuesvalueOf

例えば、私はenum

public enum class CircleType {
    FIRST
    SECOND
    THIRD
}

のような静的メソッドを追加するにはどうすればよいでしょうか? random(): CircleType ? 拡張機能では対応できないようです。

どのように解決するのですか?

他のクラスと同じように、enumクラスでクラスオブジェクトを定義することができます。

enum class CircleType {
  FIRST,
  SECOND,
  THIRD;
  companion object {
     fun random(): CircleType = FIRST // http://dilbert.com/strip/2001-10-25
  }
}

そうすると、この関数を次のように呼び出すことができるようになります。 CircleType.random() .

編集: 列挙定数エントリーの間のカンマと、コンパニオン・オブジェクトの前の閉じるセミコロンに注意してください。両方とも必須となりました。