Java 8 "Missing return type"lambda 表达式错误

标签 java lambda java-8

我是 Java 8 的新手,正在尝试理解这些概念。我正在得到

Missing return type

我传递给 ReadTheFile 方法的 Lambda 表达式出现错误。

BufferReaderProcessor

package java8.programs;

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

@FunctionalInterface
public interface BufferReadderProcessor {
    String process(BufferedReader br) throws IOException;
}

MainJava

package java8.programs;

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

public class MainJava {
    public static void main(String[] args) throws IOException {
        MainJava obj = new MainJava();

        String message = obj.ReadTheFIle((BufferedReader br) -> {
                while (br.readLine()!=null)
                    br.readLine();
        });
        System.out.println(message);
    }

    public String ReadTheFIle(BufferReadderProcessor bp) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader(new File("G:\\DemoJavaFile.txt")));

        return bp.process(br);
    }
}

最佳答案

您的 lambda 表达式实现了 BufferReaderProcessorString process(BufferedReader br) 方法,因此它应该返回一个 String

例如,假设您希望返回从 BufferedReader 读取的数据:

    String message = obj.ReadTheFIle((BufferedReader br) -> {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();
        while (line != null) {
            sb.append(line);
            line = br.readLine();
        }
        return sb.toString();
    });

关于Java 8 "Missing return type"lambda 表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39468395/

相关文章:

Python Lambda 检查 URL 健康状况

lambda - 将参数传递给 TypeScript 中的回调函数

java - 将所选元素移动一位并返回其更新后的索引

java - 为什么 RTOS 只用 c 编码?

java - Android Studio 在版本控制中使用 Git : gradle-wrapper. jar

c# - "Nullable object must have a value"在非原始/非结构对象上检查 null 后出现异常

java - 使用 java.util.Base64 编码和解码字符串

java - 如何更新接近当前日历的 Java 日历对象

java - 使用停止按钮停止无限循环

java - 创建带有形式参数的方法来设置值和返回字符串的方法