在Java中扩展不可变类型,可以通过以下几个步骤:
final
关键字修饰类,表示这个类不能被继承。equals()
和hashCode()
方法,以便于在集合中比较不可变对象。toString()
方法,以便于在调试时打印对象信息。Comparable
接口,以便于对不可变对象进行排序。以下是一个简单的不可变类型示例:
public final class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
ImmutablePerson other = (ImmutablePerson) obj;
return Objects.equals(name, other.name) && age == other.age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "ImmutablePerson{name=" + name + ", age=" + age + "}";
}
}
在这个示例中,我们创建了一个不可变的ImmutablePerson
类,它有两个私有成员变量name
和age
,并提供了公共的getter方法,但没有提供setter方法。我们还实现了equals()
、hashCode()
和toString()
方法,以便于在集合中比较和打印不可变对象。
领取专属 10元无门槛券
手把手带您无忧上云