我使用嵌套接口存储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/