Java中的“最终”关键字是如何工作的?(我仍然可以修改对象。)在Java中,我们使用final关键字中指定其值的变量不被更改。但我看到您可以更改类的构造函数/方法中的值。同样,如果变量是static那就是编译错误。以下是代码:import java.util.ArrayList;import java.util.List;class Test {
private final List foo;
public Test()
{
foo = new ArrayList();
foo.add("foo"); // Modification-1
}
public static void main(String[] args)
{
Test t = new Test();
t.foo.add("bar"); // Modification-2
System.out.println("print - " + t.foo);
}}以上代码工作正常,没有错误。现在将变量更改为static:private static final List foo;现在这是一个编译错误。这怎么final真的有用吗?
3 回答

达令说
TA贡献1821条经验 获得超6个赞
final
final
final
final

胡说叔叔
TA贡献1804条经验 获得超8个赞
最终
决赛 班级,等级
不能被子类化。 决赛 方法
不能被子类重写。 决赛 变量
只能初始化一次
当在方法的主体中定义匿名内部类时,该方法范围内声明为Final的所有变量都可以从内部类中访问。
添加回答
举报
0/150
提交
取消