相关疑难解决方法(0)

Java不可变类?

我发现了一篇包含一段有趣代码的文章:

public class Employee {

    private String firstName;
    private String lastName;

    //private default constructor
    private Employee(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public static Employee valueOf (String firstName, String lastName) {
        return new Employee(firstName, lastName);
    }
}
Run Code Online (Sandbox Code Playgroud)

我非常好奇理解创建这种类的优势.我知道这个类的对象是不可变的,因为初始化后无法更改其变量值.我之前从未做过这样的事情,我真的不明白它的优点.

  • 为什么这是一个好习惯?
  • 你能说出一种可以使用这种方法的情况吗?
  • 常量或只读变量怎么样?那不是很相似吗?
  • 在文章中说,这对应用程序的性能不利.但为什么呢?

java

18
推荐指数
1
解决办法
7820
查看次数

标签 统计

java ×1