我有一个OpenAPI 3.0文件,该文件指定了两个带有操作的REST资源,比如:
openapi: 3.0.0
[...]
paths:
/a:
post:
[...]
/b
post:
[...]
然后,我像这样使用openapi-generator-maven-plugin
:
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.1.2</version>
<configuration>
[...]
<configOptions>
<interfaceOnly>true</interfaceOnly>
[...]
</configOptions>
</configuration>
</plugin>
要生成Java接口,请给我:
public interface AApi {
default Optional<NativeWebRequest> getRequest() {
return Optional.empty();
}
default ResponseEntity<String> postA([...]) { [...] }
}
public interface BApi {
default Optional<NativeWebRequest> getRequest() {
return Optional.empty();
}
default ResponseEntity<String> postB([...]) { [...] }
}
最后,我想编写一个实现两个接口的类:
class TheController implements AApi, BApi { [...] }
但是,getRequest()
方法很麻烦,因为Java无法继承两个具有相同名称的默认实现。
有没有一种方法可以抑制这种方法的产生? (或者其他我可以想到的实现这两个接口的方法?)
答案 0 :(得分:1)
您可以在实现控制器的类中重写getRequest()
方法。
有关更多信息,请参见https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.8.4