Method Reference 在 Java 代码中的实例分析

发布时间:2025-02-09 07:30:07 作者:小樊
来源:亿速云 阅读:97

方法引用(Method Reference)是 Java 8 引入的一种简化 Lambda 表达式的写法

下面是一个实例分析,展示了如何在 Java 代码中使用方法引用。

假设我们有一个 Person 类:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

现在,我们有一个 filter 方法,它接受一个 List<Person> 和一个 Predicate<Person> 作为参数,并返回一个新的列表,其中包含满足条件的 Person 对象。

import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 30));
        people.add(new Person("Bob", 25));
        people.add(new Person("Charlie", 35));

        Predicate<Person> isAdult = person -> person.getAge() >= 18;

        List<Person> adults = filter(people, isAdult);
        System.out.println(adults);
    }

    public static <T> List<T> filter(List<T> list, Predicate<T> predicate) {
        List<T> result = new ArrayList<>();
        for (T item : list) {
            if (predicate.test(item)) {
                result.add(item);
            }
        }
        return result;
    }
}

在这个例子中,我们使用了 Lambda 表达式 person -> person.getAge() >= 18 来定义 isAdult 变量。但是,我们可以使用方法引用来简化这个表达式。在这种情况下,我们可以使用以下方法引用:

import java.util.function.Predicate;

// ...

Predicate<Person> isAdult = Person::isAdult;

这里,我们使用了 Person::isAdult 方法引用,它引用了 Person 类中的 isAdult 方法。注意,为了使这个例子成立,我们需要在 Person 类中添加一个 isAdult 方法:

public boolean isAdult() {
    return getAge() >= 18;
}

现在,我们的代码使用了方法引用 Person::isAdult 来替换 Lambda 表达式。这使得代码更简洁,同时仍然实现了相同的功能。

推荐阅读:
  1. java代码中init method和destroy method怎么使用
  2. Java中如何使用Factory Method模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:数据库并发优化中的注意事项

下一篇:Method Reference 对 Java 编程有何影响

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》