Java | Getter/Setter作为参数传递的函数

Java中,如何自定义一个函数,将POJO对象的Getter/Setter作为参数传入呢?

真诚是必杀技?

NO!源码才是技术博客的必杀技。

直接看函数定义

    public static <T, R> void getterAsParam(T t, Function<T, R> getter) {
        String format = "get value: %s";
        System.out.println(String.format(format, getter.apply(t)));
    }

    public static <T, V> void setterAsParam(T t, V value, BiConsumer<T, V> setter) {
        setter.accept(t, value);
    }

接下来就是测试

    public static void main(String[] args) {
        Person person = new Person("ZhangSan", DateTimes.newDate(2000, 1, 1));

        // Output:
        // get value: ZhangSan
        // get value: Sat Jan 01 00:00:00 CST 2000
        getterAsParam(person, Person::getName);
        getterAsParam(person, Person::getBirthday);

        setterAsParam(person, "LiSi", Person::setName);
        setterAsParam(person, DateTimes.newDate(2024, 1, 1), Person::setBirthday);
        // Output:
        // LiSi, Mon Jan 01 00:00:00 CST 2024
        System.out.println(person.getName() + ", " + person.getBirthday());
    }

完整代码见 GitHub | youngzhu

参考:

加入讨论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据