我正在开发一个网络库并创建一些注释 - @Get、@Put、@Post、@Delete 等。它们都具有相同的属性,因此是否可以将它们全部转换为某些“super”注释以使使用它们更容易?这是我的代码现在的样子:
public void createGetRoute(Get get) {
this.path = get.path()
this.method = "GET"
}
public void createPutRoute(Put put) {
this.path = put.path()
this.method = "PUT"
}
// ... And so on
我想做的是:
public void createRoute(Route route) {
this.path = route.path()
this.method = route.method()
}
其中 Route
是所有其他注释的“父类(super class)”。我知道我们无法扩展 @interfaces
,但是有其他方法可以使我的代码更加干燥吗?
最佳答案
Spring 框架利用了通用请求注释 known as @RequestMapping
,它接受方法类型和一些其他必要的参数。
在框架的新版本中,存在诸如@GetMapping
之类的便捷注释,它们应用相同的@RequestMapping
注释和合理的默认值。
您最好从您能想到的最通用的路线注释开始,并且只有当您可以考虑将它们分解为更小的方法更方便时。
关于java - 将 Annotation 转换为 Java 中的另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725634/