Immutable 类是指一旦创建,其状态就不能改变的类。在 Java 中,编写不可变类的技巧包括以下几点:
public final class ImmutableClass {
// ...
}
private final int id;
private final String name;
不提供 setter 方法:setter 方法用于修改对象的属性值,不提供 setter 方法可以确保对象的状态不会被修改。
在构造函数中初始化所有成员变量:这样可以确保对象在创建时就具有一个确定的状态。
public ImmutableClass(int id, String name) {
this.id = id;
this.name = name;
}
对于引用类型的成员变量,确保它们也是不可变的:如果成员变量是引用类型,那么需要确保它们指向的对象也是不可变的。例如,可以使用不可变集合类(如 Collections.unmodifiableList())来包装集合类型的成员变量。
提供 getter 方法:虽然不能直接修改成员变量的值,但是可以通过 getter 方法获取它们的值。
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ImmutableClass that = (ImmutableClass) o;
return id == that.id && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
遵循以上技巧,可以创建一个不可变的类,从而确保对象的状态在创建后不会被修改。这有助于提高代码的可读性和可维护性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。