最近ではenumクラスの1つをsealedクラスにオブジェクトをサブクラスとしてアップグレードしました。これにより、コードを単純化するための別の層の抽象化を行うことができます。しかし、我々はもはやEnum.values()
関数を通してすべての可能なサブクラスを得ることができません。私たちはその機能に大きく依存しているので、悪いです。反射や他のツールでそのような情報を取得する方法はありますか?封印されたクラスのすべてのサブクラスを取得するには?
PS:手動で配列に追加すると、は受け入れられません。現在45人が参加しており、さらに追加する計画があります。
これが私たちの密封されたクラスがどのように見えるかです:値のコレクションがある場合、それはこの形になります
sealed class State
object StateA: State()
object StateB: State()
object StateC: State()
....// 42 more
:
val VALUES = setOf(StateA, StateB, StateC, StateC, StateD, StateE,
StateF, StateG, StateH, StateI, StateJ, StateK, StateL, ......
当然誰も維持したいと考えていませんそのような怪物。
私の知る限りでは、実際にここに進めるための唯一*許容*方法です。あなたは与えられたクラスのすべての可能なサブクラスを知る方法がありません。これはJVMが実際にどのように動作するかの制限です。私が間違っているなら、私を修正してください。 – m0skit0
[関連](https://youtrack.jetbrains.com/issueMobile/KT-14657) – HTNW
達成しようとしていることは何ですか?いくつかのコードを投稿できますか? – D3xter