有什么办法可以使用 List<MyClass>.class 之类的东西吗?

Is there any way to use something like List<MyClass>.class?

我正在使用 SpringBoot 与 OpenAPI 和 SwaggerUI 来实现休息 api。我想用 @ApiResponses 注释 @GetMapping 方法以提供响应的模式,但我正在努力处理 @Schema 的参数 implementation。我方法的 return 类型是 List<ScanDTO>,所以我尝试了以下方法:

@ApiResponses( value = {
            @ApiResponse(content = {@Content(schema = @Schema(implementation = List<ScanDTO>.class))})
    })

但这行不通。 ScanDTO.class 这样的东西会起作用。 implementation 参数的类型为 Class<?>.

我的解决方法是创建一个包装器 class,如下所示:

public interface ScanDTOList extends List<ScanDTO> {
}

并使用它。它似乎在工作,但我认为我将来不需要额外的 class,所以我想知道,如果没有这种解决方法,是否有任何方法可以使它工作。

使用 ArraySchema 应该可以为您解决这个问题

@ApiResponse(
    content = {@Content(
        array = @ArraySchema(schema = @Schema(implementation = ScanDTO.class))
    )}
)