java - 将制表符作为注释参数传递 : "attribute value must be constant"

标签 java spring

我有一个包含多个常量的类,我想返回除一个常量之外的所有常量,以便进行一些测试。我做了一个简单的方法,但当我在注释中使用它时,它返回错误“属性值必须是常量”。

public final class RolesConstants {

    public static final String APP_SYSTEM = "APP_SYSTEM";
    public static final String APP_CLIENT = "APP_CLIENT";
    public static final String APP_PROFESSIONAL = "APP_PROFESSIONAL";
    public static final String APP_ADMIN = "APP_ADMIN";
    public static final String PRO_ADMIN = "PRO_ADMIN";
    public static final String PRO_ADD_BOOKING = "PRO_ADD_BOOKING";
    public static final String PRO_EDIT_BOOKING = "PRO_EDIT_BOOKING";
    ...

    public static String[] allRolesButAPP_SYSTEM() {
        return new String[]{ APP_CLIENT, APP_PROFESSIONAL, ... };
    }
}


import org.springframework.security.test.context.support.WithMockUser;

public class ProfessionalResourceIT {

    @WithMockUser(roles = {RolesConstants.allRolesButAPP_SYSTEM()})
    public void cannotGetIfNotSystem(){
        assertThat(...);
    }
}

attribute value must be constant

最佳答案

你能尝试这样的事情吗

import org.springframework.security.test.context.support.WithMockUser;

public class ProfessionalResourceIT {

    @WithMockUser(roles = {RolesConstants.APP_SYSTEM, RolesConstants.APP_CLIENT, so on})
    public void cannotGetIfNotSystem(){
        assertThat(...);
    }
}

关于java - 将制表符作为注释参数传递 : "attribute value must be constant",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60351432/

相关文章:

java - Windows-1251 到 UTF-8 代码

java - 当前有任何将 Sonar 用于 Java 7 代码的解决方法吗?

用于模糊比较文本字符串的 Java 库

java - 使用带有阻塞/同步请求的 Spring WebClient 使用 try/catch 捕获异常

java - HTTP 协议(protocol)对 POST 请求/响应正文有效负载的最大限制是多少。通过 REST 发送 JSON

Spring-xd 不会在 HDFS 上写入来自 Twitter 的流

java - JTabbedPane 组件占据整个窗口

java - OSGi ClassNotFoundException 异常

java - 如何使用spring AOP拦截所有带有@Repository注解的repository类

java - 消息摘要哈希MD5