| 
 
| 概念 —有且仅有一个抽象方法的接口(接口中可以包括默认,静态,私有方法)
 “语法糖”使用简单但是语法不变的
 格式:
 —只要确保接口中有且只有一个抽象方法即可。
 
 修饰符 interface 接口名称 {
 public abstract 返回值类型 方法名称(可选参数**信息); // 其他非抽象方法内容
 由于接口当中抽象方法的 public abstract 是可以省略的,所以定义一个函数式接口很简单:
 
 public interface MyFunctionalInterface {
 void myMethod();
 }
 @FunctionalInterface注解
 作用:可以检测接口是否是一个函数式接口
 是:编译成功
 否:编译失败(接口中没有抽象方法或者抽象方法大于一个)
 
 @FunctionalInterface
 public interface MyFunctionalInterface {
 void Method();
 自定义函式接口
 //自定义函数式接口
 package com.itcast.hssjk;
 FunctionalInterface
 public interface Functionalinterface {
 void aMethod();
 }
 //定义实现类
 package com.itcast.hssjk;
 public class FunctionalinterfaceImpl implements Functionalinterface{
 @Override
 public void aMethod() {
 System.out.println("实现类");
 }
 }
 //定义测试类
 package com.itcast.hssjk;
 //函数式接口的使用:一般作为方法的参数和返回值类型
 public class Test {
 //自定义一个方法,参数使用函数式接口Functionalinterface fuface
 public static void show(Functionalinterface fuface){
 fuface.aMethod();
 }
 public static void main(String[] args) {
 //方法一实现类
 show(newFunctionalinterfaceImpl());
 //方法二匿名内部类
 show(new Functionalinterface(){
 @Override
 public void aMethod() {
 System.out.println("匿名内部类");
 });
 //方法三lambda表达式
 show(()->{
 System.out.println("lambda表达式");
 });
 //方法四lambda表达式简化
 show(()->System.out.println("lambda表达式简化"));
 }
 }
 
 package itcast.copytest;
 
 import java.io.*;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
 public class CopyTest {
 public static void main(String[] args) throws IOException {
 
 HashMap<String, String> map = new HashMap<>();
 
 BufferedReader br = new BufferedReader(new FileReader("day10/src/itcast/copytest/出师表.txt"));
 
 BufferedWriter bw = new BufferedWriter(new FileWriter("day10/src/itcast/copytest/copy.txt"));
 
 String line = null;
 
 while ((line = br.readLine()) != null) {
 String[] arr = line.split("\\.");
 map.put(arr[0], arr[1]);
 }
 Set<Map.Entry<String, String>> set = map.entrySet();
 
 for (Map.Entry<String, String> entry : set) {
 
 String key = entry.getKey();
 String value = entry.getValue();
 
 bw.write(key+"->"+value);
 bw.newLine();
 }
 br.close();
 bw.close();
 }
 }
 
 | 
 |