有大量的方法需要以某种方式重写。例如,这是原始方法:
/**
* Finds all
* @param id the id
* @param codes list of codes
* @return entities
*/
@GET
@Path("/get")
@Produces(APPLICATION_JSON)
public List<Entity> get(@QueryParam("id") Integer id, @QueryParam("barcodes") List<Long> codes) {
return entityBean.findByIdAndCodes(id, codes);
}
应该这样重写:
/**
* Finds all
* @param id the id
* @param codes list of codes
* @return entities
*/
@RequestLine("GET " + PATH + "get")
List<Entity> get(@Param("id") Integer id, @Param("codes") List<Long> codes);
也就是说,重写代码应该按照以下场景进行:
- 方法的主体由符号 代替
;。 - 该方法具有访问修饰符。
- 注释掉了。
@GET_@Path@Produces - 注释被传送而不作任何更改。
- 在方法上方形成以下形式的字符串:
@RequestLine("[аннотация @GET без символа @]" + PATH + "[содержимое аннотации @Path без первого символа /]"). - 方法参数注释从
@QueryParam变为@Param。
返回类型、参数个数和名称在不同的方法中可以不同。@GET此外,它可以是@POSTor ,而不是 annotation @DELETE。
什么技术可以让我最有效地执行这样的代码转换?
为了解决这个问题,我使用
Live template了 - 这是一个工具,IDEA可以让您创建方便的模板来转换/生成代码。模板本身看起来像这样:
模板代码(为了转换我使用脚本编写的文本
Groovy):groovyScript()这里它用于指定将用于转换文本的脚本(第一个参数是脚本本身或带有脚本的文件的路径,第二个参数是传递给脚本的文本变量)。clipboard()是剪贴板的内容。脚本本身:
结果
Live template是这样的:Live template(使用之前指定的快捷方式)。因此这段代码:
变成以下内容: