Java : Couldn't understand method Syntax

标签 java

我正在处理现有代码。在其中一个类中,我有这个方法,语法如下:

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/

相关文章:

java - Spring Security 5,资源上没有 "Access Control Allow Origin" header

java - 如何使用java将4位儒略日期(yDDD)转换为日历日期格式,如MM/dd/yyy?

java - Python 中的嵌套对象

java - 我怎样才能在Java中获得n位数字的最大十进制值?

java - 圆形包装 - java

java - 没有找到适合jdbc.sqlite的驱动,比较复杂

java - 从java内部找到调试端口

java - Java 公历日历和日期格式

java泛型歧义

Java、Maven 依赖项