java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...
A?final變量意味著它只能被實(shí)例化一次。在Java中,您不能在lambda和匿名內(nèi)部類中使用非最終變量。
您可以使用舊的for-each循環(huán)重構(gòu)代碼: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();而不使用其返回值
帶著任務(wù)
calTz = TimeZone.getTimeZone(v.getTimeZoneId().getValue());您不會(huì)修改最初傳遞的
calTz而且你沒(méi)有在這個(gè)方法中使用它
你總是回來(lái)
null,你為什么不
void作為返回類型?
希望這些建議也能幫助你提高。
總結(jié)
以上是生活随笔為你收集整理的java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java匿名启动线程_用java实现匿名
- 下一篇: java利用poi读取excel_jav