我使用嵌套接口存储String常量:

public interface Constants{
    interface level1 {
        interface level2 {
            String CONSTANT = "constant";
        }
    }
}


我想将这些常量注入spring值字段中,我尝试过:

 <entry key="key" value="#{com.company.Constants.level1.level2.CONSTANT}"/>
 <entry key="key" value="#{T(com.company.Constants.level1.level2).CONSTANT}"/>


但这不起作用,正确的方法是什么?

最佳答案

编译代码时,Constants接口将编译为3个类文件:



这是因为level1嵌套接口编译为名称为Constants$level1的类文件,而level2嵌套嵌套接口编译为名称为Constants$level1$level2的类文件。

现在,您知道如何引用第二个嵌套的level2,以如下方式检索常量:

<entry key="key" value="#{T(com.company.Constants$level1$level2).CONSTANT}"/>

关于java - Spring SPEL表达式,访问嵌套接口(interface)的字符串常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16849895/

10-08 21:11