我想提出一個bukkit插件,和我使用所謂的MCStats的API,創建圖形類的實例,你添加繪圖儀是這樣的...遍歷HashMap來創建內部功能
mobs.addPlotter(new Metrics.Plotter("Player") {
@Override
public int getValue() {
return 0;
}
});
但是我想從一個HashMap和idealy像這樣得到的數值...
for(String mob: mobNames) {
mobs.addPlotter(new Metrics.Plotter(mob) {
@Override
public int getValue() {
return Stats.getValue(mob);
}
});
}
但很明顯,它不能訪問暴徒的變量,如果我將它設置爲最後,它仍然不會能夠改變循環。我該如何解決這個問題?
爲什麼'getValue()'這裏不使用傳遞給繪圖儀構造函數的怪名? – sjr
爲什麼不將循環變量設置爲'final'工作?這樣做會導致它改變每次迭代,但不會*在每次迭代中*。 –
@sjr - 將'mob'傳遞給構造函數不會爲該名稱創建新的作用域; 'getValue'中'mob'的引用是循環變量,而不是構造函數參數。 OP的問題是內部類不能引用局部變量,除非它是'final'。 –