public Gameplay instantiateGameplay(Class<? extends Gameplay> clazz) {
try {
Constructor<? extends Gameplay> constructor;
constructor = clazz.getConstructor(new Class<?>[] { Game.class });
return constructor.newInstance(new Object[] { this });
} catch (Exception e) {
Log.e(TAG, "Instantiate gameplay '" + clazz.getSimpleName() + "' failed.", e);
throw new RuntimeException(e);
}
}
通常、新しいクラスをインスタンス化するとき、コンストラクタはクラスファイル内にあります。これは何ですか?clazz.getConstructor(new Class [] {Game.class})のこと?それは奇妙に見えます。その理由は何ですか?コンストラクタについての次のアンドロイドコードを理解してください