📜  Java中的 Stream ofNullable(T) 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:26.683000             🧑  作者: Mango

Java中的 Stream ofNullable(T) 方法

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) 方法的详细介绍及示例代码。