程序中常会用到final来定义一些常量,例如 public static final String A = "A", 在编译过程中,引用到变量A的地方将会使用“A”来替换变量,当我们需要修改变量A的值时,例如 public static final String A = "B", 就需要重新编译引用到A变量的程序,否则引用到A变量的地方将仍然保持"A"值,而不会是“B”.
有的时候可能有这种需求,需要定义一个final的变量,但可能需要在某些时候修改变量的值又不想对引用到变量的程序重新编译,于是使用一个static方法,例如
public static String ident(String s){
return s;
}
将方法的返回值赋值给final变量
public static final String A = ident("A");
这样就可以达到前面提到的需求。
有的时候可能有这种需求,需要定义一个final的变量,但可能需要在某些时候修改变量的值又不想对引用到变量的程序重新编译,于是使用一个static方法,例如
public static String ident(String s){
return s;
}
将方法的返回值赋值给final变量
public static final String A = ident("A");
这样就可以达到前面提到的需求。
本文探讨了如何在不重新编译的情况下改变final变量的值。通过使用静态方法返回值赋给final变量的方式,实现了在运行时修改这些常量的能力。
1332

被折叠的 条评论
为什么被折叠?



