現在,這聽起來像是一個以前已經重複過的問題,但我已經與這個問題有其他原因的人一起研究了一天。Java變量不受影響
我有一個函數,讀取保存文件的一部分,並顯示它確實接收到正確的數據。所以錯誤在於整數變量完全忽略了新的變量,並且在實時調試器中沒有顯示任何變化,所以與其他許多帖子一樣,它不僅僅是一個重複的對象錯誤。我似乎無法指出這裏最主要的問題是什麼,這是阻止我回歸的最後一件大事。任何幫助都會很棒,如果我在網上錯過了關於這個話題的話,我會非常抱歉。
@Override
public void read(List<String> data) {
//world positions are not being changed at all
System.out.println(data.get(1));
int test = Integer.valueOf(data.get(1).replaceAll("[^\\d.]", ""));
worldXPos = Integer.valueOf(data.get(0).replaceAll("[^\\d.]", ""));
worldZPos = test;
}
另一類是給出了數據:
public void readSaveFunctions(){
if(!gameSaves.exists()){
gameSaves.mkdir();
}
String currentLine;
try {
List<String> data = new ArrayList<String>();
FileReader read = new FileReader(currentFile);
BufferedReader reader = new BufferedReader(read);
String key = "";
while((currentLine = reader.readLine()) != null){
if(currentLine.contains("#")){
key = currentLine;
data = new ArrayList<String>();
}else if(currentLine.contains("*end")){
for(int i = 0; i < saves.length; i++){
String tryKey = "#" + saves[i].IDName();
if(tryKey.equals(key)){
key = "";
saves[i].read(data);
}
}
}else data.add(currentLine);
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
解釋它的另一種方式是這樣的: - 到 - 步模式,所以我 調試器設置步驟失敗
代碼看到每條線以人的速度執行,然後我得到這樣的一條線,但所有設置變量的線都具有相同的效果:
worldXPos = Integer.valueOf(data.get(0).replaceAll("[^\\d.]", ""));
並且調試器顯示具有不同數字的兩個整數,但即時類變量保持完全相同,在線路通過後調試器中無效。
更新: 我忘了提及該方法具有@override方法,似乎這@override可能會造成這個問題,現在我終於可以有遵循再次
請發表一個[MCVE](http://stackoverflow.com/help/mcve),這裏沒有足夠的幫助我們,但*我的意思是整數變量完全忽略了新變量,在eclipse調試器中看整數變量被分配到不同的數字,但只是保持不變* **不是**一致的。它究竟是什麼意思**? –
做任何你們需要更多的例子添加? – furProgrammer
@furProgrammer不,但我們需要更好的解釋 –