Runnable runnable1 = () -> System.out.println("我爱LAMBDA");
在给接口提供一个具体实现类的对象时用到了lambda表达式,但是对这个接口是有要求的必须是函数式接口。
如果一个接口中只声明了一个抽象方法,则这个接口就是函数式接口;可以在一个接口上面写一个@FunctionalInterface注解,这样可以用来检查其是否是函数式接口。
以前用匿名实现类表示的现在都可以用lambda表达式来实现。
JAVA内置的4大核心函数式接口
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
public class TestLambda01 {
@Test
public void test01(){
happyTime(500, new Consumer() {
@Override
public void accept(Double aDouble) {
System.out.println("aDouble"+"="+aDouble);
}
});
System.out.println("+++++++++++++");
happyTime(200,(d) ->{
System.out.println("d"+"="+d);
});
}
public void happyTime(double money, Consumer con){
con.accept(money);
}
@Test
public void test02(){
List s = Arrays.asList("qw","wo","ww","er");
System.out.println(filterString(s, new Predicate() {
@Override
public boolean test(String s) {
return s.contains("w");
}
}));
System.out.println("**************************");
System.out.println(filterString(s,a -> a.contains("w")));
}
public List filterString(List list, Predicate pre){
List filterString = new ArrayList<>();
for(String s : list){
if(pre.test(s)){
filterString.add(s);
}
}
return filterString;
}
@Test
public void test03(){
}
}



