我使用嵌套接口(interface)来存储字符串常量:
public interface Constants{
interface level1 {
interface level2 {
String CONSTANT = "constant";
}
}
}
我想将这些常量注入(inject)到 Spring 值字段中,我试过了:
<entry key="key" value="#{com.company.Constants.level1.level2.CONSTANT}"/>
<entry key="key" value="#{T(com.company.Constants.level1.level2).CONSTANT}"/>
但是它不起作用,正确的方法是什么?
最佳答案
当您编译代码时,Constants
接口(interface)会编译成 3 个类文件:
那是因为 level1
嵌套接口(interface)编译成名为 Constants$level1
的类文件,level2
嵌套接口(interface)编译成类文件名称为 Constants$level1$level2
。
现在您知道如何引用第二个嵌套的 level2
检索常量,如下所示:
<entry key="key" value="#{T(com.company.Constants$level1$level2).CONSTANT}"/>
关于java - Spring SPEL表达式,访问嵌套接口(interface)String常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849895/