在Servlet中,我有两个选项来初始化一个变量,我不希望在@Singleton Servlet的生命周期内更改它,我们称之为:
Field a;
字段a仅供servlet内部使用,没有访问器方法。为了简单起见,字段a是不可变的,比如一个字符串。
选项1 - 在构造函数中使用从ServletContext获得的依赖注入信息初始化该字段,使其变为:
private final Field a;
选项2 - 在重写的init(ServletConfig cfg)方法中利用从ServletConfig(和ServletContext)中获取的信息设置变量,使字段变为:
private Field a;
显然,我更希望将字段设为final,但该字段是私有的且未附加访问器方法,因此我是否仍应尝试将其设为final?
因此,总结一下,是否应在构造函数中初始化字段并使其为final,或者在init方法中初始化并将其保留为非final且没有访问器?
谢谢。