使用FunctionalInterface提供工厂方法
Posted luffystory
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FunctionalInterface提供工厂方法相关的知识,希望对你有一定的参考价值。
1.
首先提供User类
public class User { private int id; private String name; public User(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
创建UserFactory 作为User的工厂类,是一个函数式接口
import java.util.ArrayList; import java.util.List; public class ConstrMethodRef { @FunctionalInterface interface UserFactory<U extends User>{ U create(int id, String name); } static UserFactory<User> uf = User::new; public static void main(String[] args) { List<User> users = new ArrayList<User>(); for(int i=0; i<10; i++) { users.add(uf.create(i, "billy" + Integer.toString(i))); } users.stream().map(User::getName).forEach(System.out::println); } }
在创建UserFactory实例后,对UserFactory.create()的调用,都会委托给User的实际构造函数进行,从而创建User对象实例。
以上是关于使用FunctionalInterface提供工厂方法的主要内容,如果未能解决你的问题,请参考以下文章
JAVAJDK8新特性:函数式接口@FunctionalInterface的使用说明JDK8新特性:函数式接口@FunctionalInterface的使用说明
为啥在 Java 8 中使用 @FunctionalInterface 注解