码迷,mamicode.com
首页 > 其他好文 > 详细

使用函数式接口来传递行为

时间:2020-04-05 15:22:43      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:imp   lang   nal   数据   stat   exception   string   buffer   函数式   

import java.io.BufferedReader;
import java.io.IOException;

@FunctionalInterface
public interface BufferedReaderProcessor {
    String process(BufferedReader b) throws IOException;
}


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ProcessFile {
    //读取一行数据
    public static String processFile() throws IOException{
        try(BufferedReader br = new BufferedReader(new FileReader("data.txt"))){
            return br.readLine();
        }
    }
    //如果想读多行,使用函数式接口来传递行为
    public static String processFile(BufferedReaderProcessor p) throws IOException{
        try(BufferedReader br = new BufferedReader(new FileReader("data.txt"))){
            return p.process(br);//执行一个行为
        }
    }
    public static void main(String[] args) throws IOException {
        System.out.println(processFile());
        String oneLines = processFile((BufferedReader br)->br.readLine());//传递Lambda
        System.out.println(oneLines);
        String twoLines = processFile((BufferedReader br)->br.readLine()+" "+br.readLine());
        System.out.println(twoLines);
    }
}

使用函数式接口来传递行为

标签:imp   lang   nal   数据   stat   exception   string   buffer   函数式   

原文地址:https://www.cnblogs.com/fly-book/p/12637180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!