Skip to content
DAILY QUOTE

“ ”

函数式接口

只有一个方法的接口

java
@FunctionalInterface 
public interface Runnable {
    public abstract void run(); 
}
// 泛型、枚举、反射 
// lambda表达式、链式编程、函数式接口、Stream流式计算 
// 超级多FunctionalInterface 
// 简化编程模型,在新版本的框架底层大量应用! 
// foreach(消费者类的函数式接口)

代码测试: Function函数式接口

java
package com.mystpet.hanshujiekou;  
  
import java.util.function.Function;  
  
/**  
 * function 函数型接口,有一个输入参数,有一个返回类型  
 * 只要是 函数型接口 可以 用 lambda表达式简化  
 */  
  

public class Demo01 {  
    public static void main(String[] args) {  
        //类型 变量名=new 类型  在java中实现类必须new
  
        //匿名内部类写法  
        Function<String,String> function=new Function<>() {  
            @Override  
            public String apply(String str) {  
                return str;  
            }  
        };  
  
        //应用lambda表达式  
        Function<String,String> function2=(String str)->{  
            return str;  
        };  
  
        //最简lambda表达式  
        Function<String,String> function3=str->str;  
        
        System.out.println(function.apply("abc"));
  
    }  
}

断定型接口

有一个输入参数,返回值只能是 布尔值!

代码:

java
package com.mystpet.hanshujiekou;  
  
import java.util.function.Predicate;  
  
/**  
 * 断定型接口:有一个输入参数,返回值只能时 布尔值!  
 */  
  
public class Demo02 {  
    public static void main(String[] args) {  
  
        // 判断字符串是否为空  
        Predicate<String> predicate=new Predicate<String>() {  
  
            @Override  
            public boolean test(String str) {  
                return str.isEmpty();  
            }  
        };  
  
        Predicate<String> predicate1=(String str)->{  
            return str.isEmpty();  
        };  
  
        Predicate<String> predicate2=str->str.isEmpty();  
        
        System.out.println(predicate.test(""));
    };  
}

Consumer消费型接口

只有输入,没有返回值

代码:

java
package com.mystpet.hanshujiekou;  
  
import java.util.function.Consumer;  
  
/**  
 * Consumer 消费型接口: 只有输入,没有返回值  
 */  
  
public class Demo03 {  
    public static void main(String[] args) {  
        Consumer<String> consumer=new Consumer<String>() {  
            @Override  
            public void accept(String str) {  
                System.out.println(str);  
            }  
        };  
  
//    Consumer<String> consumer2=str-> System.out.println(str);  
  
        consumer.accept("abx");  
  
    }  
}

Supplier供给型接口

没有参数,只有返回值

代码:

java
package com.mystpet.hanshujiekou;  
  
import java.util.function.Supplier;  
  
/**  
 * Supplier 供给型接口 没有参数,只有返回值  
 */  
  
public class Demo04 {  
    public static void main(String[] args) {  
        Supplier<String> supplier = new Supplier<String>(){  
            @Override  
            public String get(){  
                return "hello world";  
            }  
        };  
          
        Supplier<String> supplier1=()->"hello world";  
  
        System.out.println(supplier.get());  
    }  
}