文章目录
四类函数式编程接口(java.util.function)
1. 功能型函数式接口:
public interface Function < T, R> { public R apply(T t) ; }
此接口接收一个参数,并且返回一个处理结果;
package w.y;
import java.util.function.Function;
public class Demo {
public static void main(String[] args) {
Function<Integer, String> fun = String :: valueOf ;
System.out.println(fun.apply(1000).length());
}
}
扩展的function的一个接口 IntFunction
package w.y;
import java.util.function.IntFunction;
public class Demo {
public static void main(String[] args) {
IntFunction<String> fun = String :: valueOf ;
System.out.println(fun.apply(1000).length());
}
}
2. 供给型函数式接口:
public interface Supplier<T> { public T get() ;}
此接口不接收参数,但是可以返回结果;
package w.y;
import java.util.function.Supplier;
public class Demo {
public static void main(String[] args) {
Supplier<String> con = "hello" :: toUpperCase ;
System.out.println(con.get());
}
}
3. 消费型函数式接口:
public interface Consumer<T> {public void accept(T t) ;}
只接收数据,不返回任何处理结果;
package w.y;
import java.util.function.Consumer;
import java.util.function.IntFunction;
public class Demo {
public static void main(String[] args) {
Consumer<String> con = System.out :: println ;
con.accept("Hello World~");
}
}
4. 断言型函数式接口:
public interface Predicate<T> {public boolean test(T t) ;}
用于进行判断操作使用;
package w.y;
import java.util.function.Predicate;
public class Demo {
public static void main(String[] args) {
Predicate<String> con = "##hello" :: startsWith;
System.out.println(con.test("##"));
}
}