我只是不明白這裏發生了什麼。Android:ArrayList存儲奇怪值
ArrayList<ListItem> list=new ArrayList<ListItem>();
ListItem curItem=new ListItem();
String[] contents=cwFile.list();
for(int i=0;i<contents.length;i++){
curItem.itemName = contents[i];
if(new File(cwd+contents[i]).isDirectory()){
curItem.isDir=true;
}
list.add(i,curItem);
}
Log.i("Main",list.get(0).itemName);
Log.i("Main",contents[0]);
所以在這個代碼片斷中,我得到使用的File.List()方法
然後一個目錄的內容,我的名字保存在ListItem
的ArrayList
的對象,其中ListItem
是自創建的類。
但是,ListItem
僅僅是存儲字符串
class ListItem {
protected String itemName ="";
protected boolean isDir=false;
protected Double size=0.0;
}
然而,記錄兩者的陣列的第一元件和ArrayList
(最後兩行的第一個代碼段的)後一類,我得到不同結果!
這是日誌輸出:
03-15 20:29:46.427 465-465/com.harshal.filer I/filer: .userReturn
03-15 20:29:46.427 465-465/com.harshal.filer I/filer: Android
第二輸出,「機器人」是在裝置上的實際目錄。 但是什麼是「.userReturn」,它來自哪裏?
提示:你只會創建一個ListItem實例。然後,您添加了許多對同一對象的引用。這是一個錯誤...至於'.userReturn',這是文件或目錄,但以'.'開頭的文件默認是隱藏的...... –