我正在处理现有代码。在其中一个类中,我有这个方法,语法如下:
public Response getData(Request serviceRequest, Class<? extends APIResponse> expectedResponseClass)
{
}
我的问题是,我无法理解该方法的第二个参数。
谁能告诉我,第二个参数是什么,我们应该如何理解它?
谢谢!
修改以证明我们也可以将子类作为参数传递给需要父类(super class)的方法
Superclass.java
public class Superclass {}
一个.java
public class One extends Superclass{}
主.java
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");
}
}
最佳答案
Class<? extends APIResponse>
是一个有界通配符的例子。这意味着它可能是一个 APIResponse
类型的类本身,或者它的某个子类。
如果你有 Class<APIResponse>
相反,该方法只能在 APIResponse
类型的类上调用,而不是它的任何子类型。
看看 Wildcards tutorial获取更多信息。
关于Java : Couldn't understand method Syntax ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8785732/