📅  最后修改于: 2023-12-03 15:16:26.683000             🧑  作者: Mango
Java 8 中的 Stream ofNullable(T) 方法被用来创建一个新的单元素流。 如果传入的参数不为空,则该方法会返回一个包含该参数的 Stream 对象,否则它会返回一个空Stream。
这个方法很实用,因为它避免了我们在 stream 中使用 null check 的问题。当你需要从一个可能为 null 的对象中创建一个流时,可以使用这个方法。
下面我们看看这个方法的语法:
static <T> Stream<T> ofNullable(T t)
它接受一个泛型参数,返回 Stream 对象。
例如,下面的代码使用 ofNullable 方法创建一个 Stream:
Stream<String> stream = Stream.ofNullable("Hello World");
这个方法返回的 stream 对象包含了一个值是 "Hello World" 的元素。
接着我们来看看一个更实际的例子。假设我们有一个 User 类:
public class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
我们可以使用 ofNullable 方法创建一个包含单个 User 对象的 Stream:
User user = new User("张三", 25);
Stream<User> userStream = Stream.ofNullable(user);
如果 user 对象为 null,则 userStream 将为空。
最后,我们给出一段完整的示例代码:
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
String message = "Hello World";
Stream<String> stream = Stream.ofNullable(message);
stream.forEach(System.out::println);
User user = new User("张三", 25);
Stream<User> userStream = Stream.ofNullable(user);
userStream.forEach(u -> System.out.println(u.getName() + ", " + u.getAge()));
}
}
class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
输出结果如下:
Hello World
张三, 25
以上就是 Java 中 Stream ofNullable(T) 方法的详细介绍及示例代码。