Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 了解以下有关构造函数的android代码 publicgameplay实例化egameplay(Class[]{Game.Class}); 返回构造函数.newInstance(新对象[]{this}); }捕获(例外e){ Log.e(标记“实例化游戏性””+clazz.getSimpleName()+“‘失败’”,e); 抛出新的运行时异常(e); } }_Java - Fatal编程技术网

Java 了解以下有关构造函数的android代码 publicgameplay实例化egameplay(Class[]{Game.Class}); 返回构造函数.newInstance(新对象[]{this}); }捕获(例外e){ Log.e(标记“实例化游戏性””+clazz.getSimpleName()+“‘失败’”,e); 抛出新的运行时异常(e); } }

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

通常,当我们实例化一个新类时,构造函数在类文件中。这个clazz.getConstructor(新类[]{Game.Class})是什么东西?看起来有点奇怪。原因是什么?

这是工作中的java反射。

这是使用java反射API获取有关仅在运行时可用的类/对象的信息。特别是,该方法接受一个声明为从游戏性扩展而来的任何对象的泛型类型的参数。由于许多类中的一个可以在运行时传入,因此代码

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 });