有一个参数的构造函数的函数描述符是(T) -> R,可以使用Function接口,如下:
Function<Long, User> c2 = User::new; User user = c2.apply(110L);
有三个参数的构造函数
有三个参数的构造函数的函数描述符是(T,U,V) -> R,没有现成的接口,需要自定义,如下:
@Data @AllArgsConstructor public class User { private String name; private Long userId; private Integer age; } @FunctionalInterface public interface TriFunction<T,U,V,R> { R create(T t, U u, V v); } public static void main(String[] args) { TriFunction<String, Long, Integer, User> triFunction = User::new; User user = triFunction.create("tina", 12L, 13); }
使用注意事项
Lambda表达式可以引用静态变量、成员变量和最终的(final) 或事实上最终的局部变量。
更多关于java8中lambda表达式相关方法请查看下面的相关链接