對於標題的奇怪寫法感到抱歉,我的問題是:我在java中製作遊戲,我有一個Model Library類,它將所有模型加載到特定文件夾到模型的數組列表。我的代碼對於加載模型工作得很好,但問題是從數組列表中獲取具有特定名稱的模型。Java for循環數組列表返回錯誤
我用:
public RawModel getModel(String name){
for(int i =0;i< modes.size();i++){
System.out.println((i+1)+". Comparing " + name + " with " + modes.get(i).getName());
if(modes.get(i).getName() == name){
System.out.println("Returned model " + modes.get(i).getName());
return modes.get(i);
}
}
System.err.println("Returned default Model");
return modes.get(0);
}
這在理論上應該與得到的模型與上述名稱的工作,但在控制檯它返回:
1. Comparing platform.river with cube
Returned default Model
Returned default Model
2. Comparing platform.river with grenade
3. Comparing platform.river with plasma
4. Comparing platform.river with platform.river
5. Comparing platform.river with waterhole
1. Comparing cube with cube
2. Comparing cube with grenade
3. Comparing cube with plasma
4. Comparing cube with platform.river
5. Comparing cube with waterhole
1. Comparing waterhole with cube
2. Comparing waterhole with grenade
3. Comparing waterhole with plasma
4. Comparing waterhole with platform.river
5. Comparing waterhole with waterhole
Returned default Model
它似乎並沒有完成返回null之前的循環!然後在第二個中,它似乎完全跳過了循環,然後第三個似乎在循環之後返回null。有沒有更好的方法來獲得具有上述名稱的模型?我該如何解決這個問題?
比較字符串比較
String
是錯誤的http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –使用。在比較字符串時等於而不是== – SerMintt