2016-05-13 66 views
0

我有一個名爲LB_Adapter.java的類來幫助在ListView中顯示我的數據庫。我的計劃做工精細的所有功能,但我仍然得到一個警告錯誤每次我編譯的時候,說Java類使用未經檢查或不安全的操作

Note: Project/LB_Adapter.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

從谷歌上搜索我理解錯誤來自我的ArrayList,但我試過實現的ArrayList(),它沒有按沒有工作。有沒有辦法擺脫錯誤,或者它甚至不重要,因爲它不影響任何東西?

相關代碼:

public class LB_Adapter extends ArrayAdapter<Object> { 
List<Object> list = new ArrayList<>(); 

public LB_Adapter(Context context, int resource){ 
    super(context, resource); 
} 

public void add(LB object){ 
    list.add(object); 
    super.add(object); 
} 

@Override 
public int getCount(){ 
    return list.size(); 
} 

@Override 
public Object getItem(int position){ 
    return list.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    LBHolder lbholder; 

    if(row==null){ 
     LayoutInflater layoutinflater = (LayoutInflater) this.getContext().getSystemService(getContext().LAYOUT_INFLATER_SERVICE); 
     row = layoutinflater.inflate(R.layout.display_leaderboard_row, parent, false); 
     lbholder = new LBHolder(); 
     lbholder.lb_rank = (TextView) row.findViewById(R.id.lb_rank); 
     lbholder.lb_score = (TextView) row.findViewById(R.id.lb_score); 
     lbholder.lb_time = (TextView) row.findViewById(R.id.lb_time); 
     row.setTag(lbholder); 
    } 
    else { 
     lbholder = (LBHolder) row.getTag(); 
    } 
    LB leaderboard = (LB) getItem(position); 
    lbholder.lb_rank.setText(leaderboard.getRank().toString()); 
    lbholder.lb_score.setText(Integer.toString(leaderboard.getScore())); 
    lbholder.lb_time.setText(leaderboard.getTime().toString()); 

    return row; 
} 

static class LBHolder{ 
    TextView lb_rank, lb_score, lb_time; 
} 
} 
+4

您是否嘗試使用'-Xlint'重新編譯以獲取更多詳細信息?爲什麼你使用原始類型? –

+0

要做到這一點,我只是輸入javac項目-Xlint到終端?另外,不確定原始類型,我使用了一個教程來獲取此代碼。 – Milap

+0

我對編譯困惑的原因是這是Android Studios的一個程序,所以它不僅僅是一個簡單的java程序,它涉及到gradle和東西 – Milap

回答

2

使用原始類型已經氣餒,因爲泛型是在Java 5中引入了你應該只需要輸入參數的ArrayAdapterArrayList您同時使用:

public class LB_Adapter extends ArrayAdapter<LB> { 
    // Here --------------------------------^ 

    // And here: 
    List<LB> list = new ArrayList<>(); 

    public LB_Adapter(Context context, int resource){ 
     super(context, resource); 
    } 

    public void add(LB object){ 
     list.add(object); 
     super.add(object); 
    } 
} 
+0

我發佈了更多我的課程。當我把上的公共對象getItem(int position)方法出現錯誤(請參閱編輯)。我將其更改爲並構建了apk,並且沒有更多的錯誤。你認爲這是解決錯誤的推薦方法嗎? – Milap

+1

@Milap no - ['getItem'](http://developer.android.com/reference/android/widget/ArrayAdapter.html#getItem(int))應該在你的用例中使用'LB'。 – Mureinik

+0

好的。它也編譯沒有錯誤。謝謝你的幫助! – Milap

相關問題