java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...
A final变量意味着它只能被实例化一次。在Java中,您不能在lambda和匿名内部类中使用非最终变量。
您可以使用旧的for-each循环重构代码:private TimeZone extractCalendarTimeZoneComponent(Calendar cal,TimeZone calTz) {
try {
for(Component component : cal.getComponents().getComponents("VTIMEZONE")) {
VTimeZone v = (VTimeZone) component;
v.getTimeZoneId();
if(calTz==null) {
calTz = TimeZone.getTimeZone(v.getTimeZoneId().getValue());
}
}
} catch (Exception e) {
log.warn("Unable to determine ical timezone", e);
}
return null;}
即使我不明白这段代码的含义:你叫.
v.getTimeZoneId();而不使用其返回值
带着任务
calTz = TimeZone.getTimeZone(v.getTimeZoneId().getValue());您不会修改最初传递的
calTz而且你没有在这个方法中使用它
你总是回来
null,你为什么不
void作为返回类型?
希望这些建议也能帮助你提高。
总结
以上是生活随笔为你收集整理的java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java匿名启动线程_用java实现匿名
- 下一篇: java利用poi读取excel_jav