【发布时间】:2016-09-18 17:53:41
【问题描述】:
我从 Java 8 开始,我想知道是否可以将带有 try-catch 子句的循环转换为 lambda 函数? 下面是我想转换成的方法代码:
for (File f: files) {
JSONOject obj;
try (FileWriter fw= new FileWriter("path.csv")) {
obj= (JSONObject) parser.parse(new FileWriter(f));
readOBJ(valueType,results,obj);
results.put(day, new JobClass(day,work, time,description));
Date d= results.keySet();
Calendar c= Calendar.getinstance();
c.setTime(d);
Map<Date, JobClass> daysList= new HashMap<>();
j.insertDaysList(results,c,fw,daysList);
results.putAll(daysList);
j.resSort(results,resDayList);
} catch (IOException ex) {
e.printStacktrace();
}
}
return resDaysList;
【问题讨论】:
-
我不知道您使用的是什么解析器,但是将 writer 传递给解析器看起来很不寻常……
Date d= results.keySet();行看起来也不是很有说服力。而且完全不清楚您返回的结果resDaysList来自何处。换句话说,你吐出了一些不工作的代码,并要求我们将其转换为 lambda 函数。首先,我们不是代码重写服务,其次,将其转换为 lambda 函数没有任何好处。尝试将其转换为正确的代码可以获得更多回报。
标签: java lambda java-8 java-stream