JAVA 内建式函数接口
来源:互联网 发布:麦道夫骗局知乎 编辑:程序博客网 时间:2024/06/03 16:42
对于方法的引用,严格来讲都需要定义一个接口,可是不管如何操作,实际上有可能操作的接口只有四种:在JDK1.8里面提供了一个包:java.util.function,提供有以下四个核心接口:
1、功能型接口(Function):public interface Function<T,R>{public R apply(T t);}
|-此接口需要接收一个参数,并返回处理结果
2、消费型接口(Consumer):public interface Consumer<T>{ public void accept(T t);}
|-此接口只是负责接受数据(引用数据不需要返回值),并不返回处理结果。
3、供给型接口(Supplier):public interface Supplier<T>{public T get();}
|-此接口不接收参数,但是可以返回结果。
4、断言型接口(Predicate):public interface Predicate<T>{public boolean test(T t);}
|-此接口进行判断操作使用。
因为在JDK1.8中存在有以上四种功能型接口,所以一般很少会由用户去定义新的函数式接口。
1、功能型接口(Function):public interface Function<T,R>{public R apply(T t);}
|-此接口需要接收一个参数,并返回处理结果
2、消费型接口(Consumer):public interface Consumer<T>{ public void accept(T t);}
|-此接口只是负责接受数据(引用数据不需要返回值),并不返回处理结果。
3、供给型接口(Supplier):public interface Supplier<T>{public T get();}
|-此接口不接收参数,但是可以返回结果。
4、断言型接口(Predicate):public interface Predicate<T>{public boolean test(T t);}
|-此接口进行判断操作使用。
因为在JDK1.8中存在有以上四种功能型接口,所以一般很少会由用户去定义新的函数式接口。
因为是在java.util.function包内定义的,所以使用的时候需要进行导包操作。
功能型接口:引用String类的startsWith()方法为例:public boolean startsWith(String str)
消费型接口:
功能型接口:引用String类的startsWith()方法为例:public boolean startsWith(String str)
import java.util.function.Function ;//导包public class Demo{public static void main (String [] args){//实例化对象引用String类的startsWith()方法Function<String , Boolean> fun = "##Hello" :: startsWith ;//判断字符串是否以“##”开头System.out.println(fun.apply("##")) ;}}//运行结果:true
消费型接口:
import java.util.function.Consumer;//导包//定义一个类,里面定义一个有参数但是没有返回值的方法class MyDemo{public void print(String str){System.out.println(str) ;}}public class Demo{public static void main (String [] args){Consumer<String> cons = new MyDemo() :: print ; //引用MyDemo类的print()方法cons.accept("Hello World !") ;}}//执行结果:Hello World !
供给型接口: 引用String类的toUpperCase()方法为例:public String toUpperCase() ;
import java.util.function.Supplier;//导包public class Demo{public static void main (String [] args){Supplier<String> sup = "hello" :: toUpperCase ; //通过实例化对象引用String类的toUpperCase()方法System.out.println(sup.get()) ;}}//执行结果:HELLO断言型接口:引用String类的equalsIgnoreCase()方法为例:public boolean equalsIgnoreCase(String str) ;
import java.util.function.Predicate;//导包public class Demo{public static void main (String [] args){Predicate<String> pre = "hello" :: equalsIgnoreCase ; //通过实例化对象引用String类的equalsIgnoreCase()方法System.out.println(pre.test("Hello")) ;}}//执行结果:true
阅读全文
1 0
- JAVA 内建式函数接口
- Java lambda和函数接口
- java 接口里暴露函数
- java 函数式接口(FuncationalInterface)
- JNI调用java接口函数
- java 8 函数式接口
- Java lambda 函数式接口
- java 抽象类 和接口 构造函数
- C++虚函数 与java 接口
- C++虚函数 与java 接口
- Java 8 : 函数式接口例子
- 通用函数接口java.util.function.*
- Java基础之集合函数-Collection接口
- java调用接口(跨域调用函数)
- java中接口类似c++中纯虚函数
- 学习 Java 8 - 函数式接口 Lambda
- Java新特性:函数式接口
- Java 8 中函数接口分析
- lintcode-bitswap
- 去除inline-block元素间间距的N种方法
- 【互联网安全】阿里手把手教学,DDoS攻防原理及实战
- TrialReneder特效的编程
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- JAVA 内建式函数接口
- 剑指offer(30)—连续子数组的最大和
- Android中高德地图定位功能的实现
- 24中设计模式
- 【Ionic2】Ionic2打包编译时内存溢出问题
- 初入博客-献上zabbix安装
- vue1.x 事件对象(二)
- Go package & import
- qt中QTableWidget的使用