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

时间:2015-10-09 17:57:44

标签: 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;
    }
}

所以我发现杰克逊你可以做这样的事情:

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

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

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

关于我做错了什么或者它是intellij中的一个已知错误?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

其中$parameter$分钟:1最高:unlimitedThis variable is target of the search已经过检查。

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

$Type$ $parameter$

替换模板:

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