我是 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 表达式实现了 BufferReaderProcessor
的 String 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/