标签:i++ nal 调用 foreach return sys pre 使用 extend
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对象实例。
标签:i++ nal 调用 foreach return sys pre 使用 extend
原文地址:https://www.cnblogs.com/luffystory/p/11963689.html