标签:inter 一行代码 consumer 核心 不能 使用 ESS 技术 引用
expression = (variable) -> action
java.util.function
public static void donation(Integer money, Consumer<Integer> consumer){
consumer.accept(money);
}
public static void main(String[] args) {
donation(1000, money -> System.out.println("好心的麦乐迪为Blade捐赠了"+money+"元")) ;
}
public static List<Integer> supply(Integer num, Supplier<Integer> supplier){
List<Integer> resultList = new ArrayList<Integer>() ;
for(int x=0;x<num;x++)
resultList.add(supplier.get());
return resultList ;
}
public static void main(String[] args) {
List<Integer> list = supply(10,() -> (int)(Math.random()*100));
list.forEach(System.out::println);
}
public static Integer convert(String str, Function<String, Integer> function) {
return function.apply(str);
}
public static void main(String[] args) {
Integer value = convert("28", x -> Integer.parseInt(x));
}
public static List<String> filter(List<String> fruit, Predicate<String> predicate){
List<String> f = new ArrayList<>();
for (String s : fruit) {
if(predicate.test(s)){
f.add(s);
}
}
return f;
}
public static void main(String[] args) {
List<String> fruit = Arrays.asList("香蕉", "哈密瓜", "榴莲", "火龙果", "水蜜桃");
List<String> newFruit = filter(fruit, (f) -> f.length() == 2);
System.out.println(newFruit);
}
public class Test2 {
/*
一个接口,如果只有一个显式声明的抽象方法,
那么它就是一个函数接口。
一般用@FunctionalInterface标注出来(也可以不标)
*/
interface Inteface1 {
// 可以不用abstract修饰
public abstract void test(int x, int y);
// public void test1();//会报错,不能有两个方法,尽管没有使用abstract修饰
public boolean equals(Object o);// equals属于Object的方法,所以不会报错
}
public static void main(String args[]) {
Inteface1 f1 = (x, y) -> {
System.out.println(x + y);
};
f1.test(3, 4);
Inteface1 f2 = (int x, int y) -> {
System.out.println("Hello Lambda!\t the result is " + (x + y));
};
f2.test(3, 4);
}
}
public static Supplier<Integer> testClosure() {
int i = 1;
// i++; // 会报错
return () -> {
return i;
};
}
标签:inter 一行代码 consumer 核心 不能 使用 ESS 技术 引用
原文地址:https://www.cnblogs.com/huangwenjie/p/9252116.html