我試圖在Platform.runLater()包裹ObservableList,他們卻給我一個錯誤:新任務導致java.lang.IllegalStateException:不上,即使Platform.runLater FX應用程序線程()包裹
local variables referenced from an inner class must be final or effectively final
我想不出有什麼解決這個錯誤的。這裏是我的代碼:
Task task = new Task<Void>() {
@Override public Void call() {
try {
for (int i = 0; i < obLstDataset.size(); i++){
// **************************
//doing other stuff here
// **************************
if (pageVLEDEResult.contains("something")) {
Platform.runLater(new Runnable() {
@Override
public void run() {
obLstInvalid.add((String)obLstDataset.get(i));
}
});
}
else if (pageVLEDEResult.contains("something else")){
if (i!=0){
i--;
}
}
updateProgress (i+1, obLstDataset.size());
}
} catch (IOException | FailingHttpStatusCodeException ex) {
Logger.getLogger(VehicleLicenceExpiryDateEnquirer.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
};
什麼是阻止你宣佈場最後? – mwe
我以爲它想obLstInvalid或obLstDataset是最終的(他們已經是)。事實上,這是需要最終決定的varialbe「i」,完全錯過了它。 – ChickenFeet