-老的特性 :泛型、枚举、反射、注解
- 新时代程序员必会jdk1.8:lambda表达式、链式编程、函数式接口、Stream流式计算
1.函数式接口
- 只有一个方法的接口
- 简化编程模型,在新版本中大量使用
- 可以用lambda
- Function 、Predicate、Supplier、Consumer
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
1.1 函数型接口
public class FunctionDemo {
public static void main(String[] args) {
Function function = new Function<String,String>() {
@Override
public String apply(String o) {
return o;
}
};
//函数式接口:可以用lambda简化
Function function1 = (str)->{return str;};
System.out.println(function.apply("123"));
System.out.println(function1.apply("qwe"));
}
}
1.2 断定型接口
public class PreDemo {
public static void main(String[] args) {
//断定型接口:
Predicate predicate = new Predicate<String>() {
@Override
public boolean test(String o) {
return o.isEmpty();
}
};
Predicate predicate1 = (str)->{return false;};
System.out.println(predicate.test("123"));
}
}
1.3 消费型接口
public class ConsumerDemo {
public static void main(String[] args) {
Consumer consumer = new Consumer() {
@Override
public void accept(Object o) {
}
};
consumer.accept("123");
Consumer consumer1 = (str)->System.out.println("123");
consumer1.accept("123");
}
}
1.4 供给型接口
public class SupplierDemo {
public static void main(String[] args) {
Supplier supplier = new Supplier() {
@Override
public Object get() {
return "123";
}
};
Supplier supplier1 = ()->{return "qwe";};
System.out.println(supplier.get());
System.out.println(supplier1.get());
}
}