understand the following android code about constructor
<pre><code>public Gameplay instantiateGameplay(Class&lt;? extends Gameplay&gt; clazz) {
    try {
        Constructor&lt;? extends Gameplay&gt; constructor;


        constructor = clazz.getConstructor(new Class&lt;?&gt;[] { Game.class } );
        return constructor.newInstance(new Object[] { this });
    } catch (Exception e) {
        Log.e(TAG, "Instantiate gameplay '" + clazz.getSimpleName() + "' failed.", e);
        throw new RuntimeException(e);
    }
}
</code></pre>

<p>normally, when we instantiated a new class, the constructor is inside the class file.  what's this clazz.getConstructor(new Class[] { Game.class } ) thing? It looks kind of odd. whats the reason for that?</p>
