java - 如何批量注释构造函数参数?

标签 java regex intellij-idea structural-search

我遇到了一个问题,我想通过 jackson 使我们项目中的很多类可反序列化。问题是大多数类看起来像这样:

public class FinalFieds{

    private final String field;
    private final String secondField;

    public FinalFieds(String field, String secondField)
    {
        this.field = field;
        this.secondField = secondField;
    }

    public String getField()
    {
        return field;
    }

    public String getSecondField()
    {
        return secondField;
    }
}

所以我发现在 jackson 中你可以做这样的事情:

public FinalFieds(@JsonProperty("field") String field, @JsonProperty("secondField") String secondField)

这很好用。问题是我无法在 intellij 中进行结构替换来为我工作。当我尝试时: enter image description here

我所有的比赛都在“未分类的比赛”部分。 此外,当我尝试替换时,Intellij 只是从类中删除了一个构造函数。

知道我做错了什么,还是 intellij 中的已知错误?

即使是一个过于复杂的正则表达式也可以帮助我替换它(对于单参数构造函数,我可以自己创建它;问题是我们在这些类中的构造函数具有多参数构造函数)。

最佳答案

这是错误还是缺少功能取决于您如何看待它。 https://youtrack.jetbrains.com/issue/IDEA-141143

但是,可以分两步完成。先搜索要注解的构造函数参数:

class $Class$ implements OurCommonInterface {
  $Class$($Type$ $parameter$);
}

其中 $parameter$ min: 1 max: unlimited, This variable is target of the search checked .

然后用范围 Previous Search Results 中的注释参数替换该参数:

$Type$ $parameter$

替换模板:

@JsonProperty("$parameter$") $Type$ $parameter$

关于java - 如何批量注释构造函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044462/

相关文章:

java - Android 中的自定义最大 asyncTasks

javascript - 如何避免在以下脚本中使用两次替换(仅使用一个正则表达式)?

java - 我试图获取集合中的最后一个日期元素,但是它一直返回第一个日期元素?

java - GUI RadioButtonJPanel

java - 在 gradle 的子项目中的根项目中定义的依赖项会发生什么情况?

java - 在Java中将where子句解析为字符串

regex - MongoDB 使用 Filter 获取 N 个最近的文档

java - 从投资返回率角度来看,什么是好的 IntelliJ 检查配置文件?

java - Intellij 无法识别 Gradle 依赖项

java - 在gradle项目中使用IntelliJ运行主要方法,但仅使用System.out输出