スーパークラスAと、Aを拡張するクラスB、C、およびDがあります。
class A {}
class B extends A {}
class C extends A {}
class D extends A {}
次に、次のようなリストがあります。
[B.class, C.class, D.class]
リストからランダムなアイテムを取得し、次のようにインスタンス化します。
Object obj = list.get(i).newInstance()
ここで、タイプ A のオブジェクトをパラメーターとして受け入れるメソッドに obj を渡す必要があります。
A a = (A) obj
Javaが例外をスローします(InstantiationExceptionまたはIllegalAccessExceptionのいずれか、Androidスタジオはキャッチ内のブレークポイントで停止せず、キャッチからの例外に関する情報を保存しようとするとnullになるため、わかりません...)。
新しいオブジェクト型を動的に指定して obj をその型にキャストできない理由は理解していますが、それらがすべて共通の親を共有している場合、なぜ機能しないのかわかりません。
私が現在行っていることを修正する方法、または同様の方法で同じことを達成する方法を誰かが教えてくれますか?
ありがとう!/最大