JAVA 内建式函数接口

     对于方法的引用,严格来讲都需要定义一个接口,可是不管如何操作,实际上有可能操作的接口只有四种:在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中存在有以上四种功能型接口,所以一般很少会由用户去定义新的函数式接口。

     因为是在java.util.function包内定义的,所以使用的时候需要进行导包操作。
     
      功能型接口:引用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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值