A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Collections 初级黑马   /  2019-1-10 14:05  /  900 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

概念
—有且仅有一个抽象方法的接口(接口中可以包括默认,静态,私有方法)
“语法糖”使用简单但是语法不变的
格式:
—只要确保接口中有且只有一个抽象方法即可。

修饰符 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();
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马