在Java中,为了防止在实例方法返回后更改字段,可以使用以下方法:
final
关键字:将字段声明为final
,这样它们的值在对象创建后就不能被更改。这对于基本数据类型和不可变对象(如String
)很有用。public class MyClass {
private final int myField;
public MyClass(int myField) {
this.myField = myField;
}
public int getMyField() {
return myField;
}
}
public class MyClass {
private int myField;
public MyClass(int myField) {
this.myField = myField;
}
public int getMyField() {
return myField;
}
}
Collections.unmodifiableList()
创建一个不可变的列表。import java.util.Collections;
import java.util.List;
public class MyClass {
private final List<String> myList;
public MyClass(List<String> myList) {
this.myList = Collections.unmodifiableList(myList);
}
public List<String> getMyList() {
return myList;
}
}
Optional
类:如果字段可能为null
,可以使用Optional
类来包装它。这样,在实例方法返回后,就不能更改字段的值。import java.util.Optional;
public class MyClass {
private final Optional<String> myField;
public MyClass(String myField) {
this.myField = Optional.ofNullable(myField);
}
public Optional<String> getMyField() {
return myField;
}
}
通过以上方法,可以有效地防止在实例方法返回后更改字段的值。
领取专属 10元无门槛券
手把手带您无忧上云