1.函数型(Function):只有一个方法的接口
例如: Runnable
package java.lang;
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
有一个输入参数,有一个输入参数,可以用lambda表达式简化。
例如:重写Function apply方法
Function function=new Function<String,String>(){
@Override
public String apply(String s) {
return s+s;
}
};
简化版:
Function<String,String> f=(s)->{return s+s;};
2.断定型接口( Predicate):返回值只能是布尔类型
package java.util.function;
import java.util.Objects;
@FunctionalInterface
public interface Predicate<T> {
boolean test(T t);
}
Predicate<String> predicate=(s)->{return s.isEmpty();};
3.消费型接口(Consumer):只输入,不返回
package java.util.function;
import java.util.Objects;
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
}
Consumer consumer=(s)->{System.out.print(s);};
4.共给型接口(Supplier):只返回,不输入
@FunctionalInterface
public interface Supplier<T> {
T get();
}
Supplier supplier=()->{return 1024;};