java - 将注释参数之一替换为 IntelliJ IDEA 的结构替换

标签 java intellij-idea annotations structural-search

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

现在我的大多数类(class)都是这样的:

@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 的出现次数设置为无限制。

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

最佳答案

看来是因为a bug无法匹配注释名称-值对中的数组 (ElementValueArrayInitializer)。您可以使用如下查询来匹配所需的注释:

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

但这可能不是很有帮助。

关于java - 将注释参数之一替换为 IntelliJ IDEA 的结构替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148556/

相关文章:

java - Tomcat 服务器未在 IntelliJ IDEA 中启动

Hibernate validator 在运行时更改区域设置

java - 设置 Eclipse 不在接口(interface)中的方法声明之间插入空行?

java - 如何在 Java jPanel 上打印一些文本?

java - IntelliJ : Re-format existing code with additional rules

intellij-idea - Java 7 和 IntelliJ

java - 如何在 Java 中自动记录任何 @Deprecated 注释方法的使用?

java - @Id 注释是什么?

Java Collections.sort - 帮助我删除未经检查的警告

java - 使用 POI API 将页脚(带图像)添加到 Word Doc