Java 成员变量使用Optional 类型
时间: 2024-05-09 10:18:44 浏览: 9
Java 8 引入了 Optional 类型,它是一个容器对象,可以用来代表一个值存在或不存在。使用 Optional 类型可以避免空指针异常的出现。
在使用成员变量时,如果该变量可能为空,可以使用 Optional 类型来定义它。例如:
```java
public class Person {
private Optional<String> name;
public Person() {
this.name = Optional.empty();
}
public void setName(String name) {
this.name = Optional.ofNullable(name);
}
public Optional<String> getName() {
return this.name;
}
}
```
在上面的代码中,Person 类的 name 成员变量被定义为 Optional<String> 类型。在构造函数中,它被设置为 Optional.empty(),表示初始时不存在值。在 setName 方法中,使用 Optional.ofNullable(name) 方法来将传入的 name 参数包装成 Optional 对象。在 getName 方法中,直接返回 name 成员变量。
使用 Optional 类型的好处是,在调用 getName 方法时,可以避免空指针异常的出现。例如:
```java
Person p = new Person();
p.setName("Tom");
String name = p.getName().orElse("Unknown");
System.out.println(name); // 输出 "Tom"
p.setName(null);
name = p.getName().orElse("Unknown");
System.out.println(name); // 输出 "Unknown"
```
在上面的代码中,当 name 为 null 时,调用 getName 方法会返回一个空的 Optional 对象,调用 orElse 方法可以提供一个默认值。这样就可以避免空指针异常的出现。