我尝试在servlet中使用注释@MultipartConfig(location = Test.MY_CONST)。
当我从下面使用代码1 时,它可以正常工作。当我从下面使用 Code 2 时,我在编译时得到以下输出:
错误:属性值必须保持不变
@MultipartConfig(location = Test.MY_CONST)
代码1
public class Test {
public static final String MY_CONST = "/constant/path";
}
代码2
public class Test {
public static final String MY_CONST;
static {
MY_CONST = "/constant/path";
}
}
的问题: 我有几个问题都归结为“这里发生了什么?”
MY_CONST
分配编译时常量不会使MY_CONST
成为编译时 - 常数βSystem.out.println(Test.MY_CONST)
打印的内容,如果代码2 ,如果我用反射更改MY_CONST
的值?答案 0 :(得分:1)
您无法更改“最终”变量。 “常量”变量无法更改。它也直接初始化。