Java : Couldn't understand method Syntax 
<p>I am working on an existing code. In one of the classes I have this method, with the folowing syntax:</p>

<pre><code>public Response getData(Request serviceRequest, Class&lt;? extends APIResponse&gt; expectedResponseClass) 
{

}
</code></pre>

<p>My question is, I couldn't understand the second parameter of this method.</p>

<p>Could anybody please tell me, what is that second parameter, and how should we must understand that?</p>

<p>Thank you!</p>

<p>Modified as to prove that we can pass the subclass also as a parameter  to a method which expects superclass</p>

<p><strong>Superclass.java</strong></p>

<pre><code> public class Superclass {}
</code></pre>

<p><strong>One.java</strong></p>

<pre><code>public class One extends Superclass{}
</code></pre>

<p><strong>Main.java</strong></p>

<pre><code>public class Main {
    public static void main(String args[]) {
        One one = new One();
        Main main = new Main();
        main.mainMethod(one);
    }

    public void mainMethod(Superclass sc) {
        System.out.println("Inside the Main Method");
    }

}
</code></pre>
