This question already has answers here:
Why would one declare an immutable class final in Java?
                            
                                (11个答案)
                            
                    
                2年前关闭。
        

    

我通常有这么小的类定义,如下所示:

public static class Annotation {
    private final String brand;
    private final Sentiment sentiment;

    public Annotation(String brand, Sentiment sentiment) {
        this.brand = brand;
        this.sentiment = sentiment;
    }

    public String brand() {
        return this.brand;
    }

    public Sentiment sentiment() {
        return this.sentiment;
    }
}


没有任何方法可以修改客户的“品牌”和“情感”。如果删除“ final”修饰符,我的IntelliJ会警告我,说我应该添加“ final”方法。

在这种情况下总是添加“ final”是否是一种好习惯?

最佳答案

IntelliJ建议变量尽量设为final,因为它可以防止意外修改变量。

同样,如果使用static final修饰符,有时Java编译器也会优化代码。

10-06 01:15