4

我有一个问题,我想通过杰克逊在我们的项目中制作很多类可反序列化。问题是大多数类看起来像这样:

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 中进行结构替换来为我工作。当我尝试: 在此处输入图像描述

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

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

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

4

1 回答 1

1

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

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

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

其中$parameter$min: 1max: unlimitedThis variable is target of the search检查。

然后将参数替换为 scope 中带注释的参数Previous Search Results

$Type$ $parameter$

替换模板:

@JsonProperty("$parameter$") $Type$ $parameter$
于 2015-11-07T19:07:47.380 回答