java8 - 内置函数式接口(Supplier、Function)

Supplier

如果需要创建类型T的对象,就可以使用这个Supplier接口。

创建一个字符串并输出
public class SupplierDemo {
    public static void main(String[] args) {
        System.out.println(getStr(() -> "hello wolrd"));
    }

    public static  T getStr(Supplier supplier) {
        return supplier.get();
    }
}

Function

接受一个泛型T的对象,并返回一个泛型R的对象

通过字符串,返回对应的长度
public class FunctionDemo {
    public static void main(String[] args) {
        List list = Arrays.asList("1", "2", "3", "11", "22", "33");
        getLength(list, t -> t.length());
    }

    public static  void getLength(List list, Function function) {
        Map map = new HashMap<>();
        for (T t : list) {
            map.put(t, function.apply(t));
        }
        System.out.println(map);
    }
}

这边传入的类型是String,返回的int。

你可能感兴趣的:(java,lambda)