Java 了解以下有关构造函数的android代码 publicgameplay实例化egameplay(Class[]{Game.Class}); 返回构造函数.newInstance(新对象[]{this}); }捕获(例外e){ Log.e(标记“实例化游戏性””+clazz.getSimpleName()+“‘失败’”,e); 抛出新的运行时异常(e); } }
通常,当我们实例化一个新类时,构造函数在类文件中。这个clazz.getConstructor(新类[]{Game.Class})是什么东西?看起来有点奇怪。原因是什么?这是工作中的java反射。这是使用java反射API获取有关仅在运行时可用的类/对象的信息。特别是,该方法接受一个声明为从游戏性扩展而来的任何对象的泛型类型的参数。由于许多类中的一个可以在运行时传入,因此代码Java 了解以下有关构造函数的android代码 publicgameplay实例化egameplay(Class[]{Game.Class}); 返回构造函数.newInstance(新对象[]{this}); }捕获(例外e){ Log.e(标记“实例化游戏性””+clazz.getSimpleName()+“‘失败’”,e); 抛出新的运行时异常(e); } },java,Java,通常,当我们实例化一个新类时,构造函数在类文件中。这个clazz.getConstructor(新类[]{Game.Class})是什么东西?看起来有点奇怪。原因是什么?这是工作中的java反射。这是使用java反射API获取有关仅在运行时可用的类/对象的信息。特别是,该方法接受一个声明为从游戏性扩展而来的任何对象的泛型类型的参数。由于许多类中的一个可以在运行时传入,因此代码 public Gameplay instantiateGameplay(Class<? extends Gamep
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);
}
}
constructor=clazz.getConstructor(新类[]{Game.Class});
返回构造函数.newInstance(新对象[]{this});
为传入的实际参数获取构造函数并使用它创建对象的新实例
constructor = clazz.getConstructor(new Class<?>[] { Game.class } );
return constructor.newInstance(new Object[] { this });