使用IntelliJ IDEA的结构替换替换其中一个注释参数

时间:2017-07-17 15:50:41

标签: java intellij-idea annotations structural-search

我有许多带有@ContextConfiguration注释的类。注释具有classes参数,该参数可以是数组。

现在我的大部分课程都是这样的:

@RunWith(SpringJUnit4ClassRunner.class)         
@ContextConfiguration(classes = {
        ThisShellBeTwoClassesInContextHierarchyConfig.class,
        SomeTest.SomeTestConfig.class,
        WhateverConfig.class
})
@Transactional
public class SomeTest { ...

一些神奇批处理操作的所需输出如下:

@RunWith(SpringJUnit4ClassRunner.class)         
@ContextHierarchy(classes = {
        @ContextConfiguration(classes = { ConfigA.class }),
        @ContextConfiguration(classes = { ConfigB.class }),
        @ContextConfiguration(classes = {
            SomeTest.SomeTestConfig.class,
            WhateverConfig.class
        })
})
@Transactional
public class SomeTest { ...

到目前为止,我甚至无法使用IntelliJ IDEA Structural替换工具查找带有classes参数的注释,更不用说替换它了。 甚至像这样的简化结构

@$Annotation$($param$ = { $ctx$ })

找不到任何东西。 ctx的出现次数设置为无限制。

我应该如何正确使用注释参数?

1 个答案:

答案 0 :(得分:1)

由于a bug,似乎无法在注释名称 - 值对中匹配数组(ElementValueArrayInitializer)。您可以使用以下查询匹配所需的注释:

@$Annotation$($param$ = $value$)

但这可能不是很有帮助。