2013-12-13 99 views
1

由於某些原因,當我編譯這個簡單的代碼時,彈出一個錯誤。 (如果我有10代表我會張貼它)它基本上說(文件目錄)使用未經檢查或不安全的操作。用-Xlint重新編譯:取消選中以查看詳細信息。我嘗試了一點,看起來如果我拿走Bin.add()錯誤消失。有人能解釋我應該做什麼嗎?Arraylist - 編譯器令我困惑

ERROR!!!

import java.util.ArrayList; 
public class Summoned_Bin 
{ 

ArrayList Bin = new ArrayList(); 

Summoned_Bin() 
{ 

} 

void addToBin() 
{ 
    Summon summoned = new Summon(); 
    int index = 0; 
    while (Bin.get(index) != null) 
    { 
     index++; 
    } 
    Bin.add(index , summoned); //Without this it runs fine 
} 

} 
+1

爲什麼你不能後呢? (如果您要發佈圖片,請不要!請改爲發佈錯誤文本。) –

+0

爲什麼我不應該發佈圖片?關於這個錯誤的事情是它在窗口中彈出(如JFrame) –

+1

因爲您應該發佈錯誤的確切文本。您應該可能已經開始搜索錯誤的確切文本。如果我陷入困境,那就是我總是開始的地方。 – nhgrif

回答

6

我認爲這要你輸入列表List<Summon> Bin = new ArrayList<Summon>();

三點注意事項:

聲明類型List<Summon>而不是ArrayList<Summon>使用接口的最佳實踐,這將允許您在以後更改類型。

Summoned_Bin類應遵循Java命名標準,所以SummonedBin應該是名稱。

此外,SummonedBin對象的名稱應遵循Java命名標準,請使用bin而不是Bin

修訂的類

public class SummonedBin { 

    List<Summon> bin = new ArrayList<Summon>(); 

    SummonedBin() { 

    } 

    void addToBin() { 
     Summon summoned = new Summon(); 
     int index = 0; 
     while (bin.get(index) != null) { 
      index++; 
     } 
     bin.add(index, summoned); 
    } 
} 
+0

注意到,當我設置一個示例在我的IDE中。 –

+0

對不起,關於命名,沒想到與任何人分享代碼。 –

+0

@ Programmer-Lvl1沒有問題的一些建議。 –

2

這不是錯誤,它只是警告。

你想要做明確的類型定義:

ArrayList<Summon> Bin = new ArrayList<Summon>(); 
+0

工作!但爲什麼?我認爲你可以把多個變量類型和對象放在同一個ArrayList中? –

+2

不要這樣做,如果你有多種對象類型,你不知道你得到了什麼 – Hamdor

+0

爲了補充blub說的,這就是泛型被引入的原因,並避免了演員。 –