2013-04-27 32 views
1

我想在類中創建一個類的數組,以便我可以有多組內部類。但是因爲我不能用Java創建一個空的數組,所以我想知道設置它的最好方法是什麼。我知道我可以定義一個比我以前使用的數組還要大的數組,但是我感覺這種拙劣的編程。一個類中的對象數組

這裏是2班的重要組成部分:

public class xmldata { 
    String Barcode; 
    String First; 
    String Last; 
    String Phone; 
    String Email; 

    String md5sum; 

    String zipfile; 

    picture_data[] pics; 

...

public class picture_data { 

    static String filename; 
    static String directory; 

正如你所看到的,我有picture_data的XMLDATA陣列。我已經看到了一些使用列表的東西,但是這些示例是不同的,我不確定我知道如何將其應用於我的案例。

下面是我用來嘗試和填充數組的代碼。

xmldata data = new xmldata(); 

    ResultSet pictures=db.query("select * from pictures where barcode=?",barcode); 
    int i = -1; 
    while (pictures.next()) { 
     ++i; 
     data.pics[i].setdirectory(pictures.getString("path")); 
     data.pics[i].setfilename(pictures.getString("filename"));  
    } 

任何意見,將不勝感激。

+2

然後不使用的陣列創建的。使用ArrayList或Vector來存儲picture_data對象。 – 2013-04-27 19:06:17

回答

2

現代idiomatic Java不使用原始數組或矢量,它使用type safe List implementations

另外picture_dataxmldata不是Java中類的慣用命名約定,應該是PictureDataXMLData。我會挑戰一個稱爲PictureDataXMLData的類的語義。

一個正確的解決辦法是像

List<PictureData> list = new ArrayList<PictureData>(); 

瞭解如何使用Java中的Collections框架的工作是富有成效的基本要求。類型安全List s是編寫真實Java代碼的核心組件。

+0

這是奇怪的事情。我似乎可以添加到列表中,但是當我將值從列表中拉出時,它們始終是我放入列表中的最後一個值,而不是正確的值。 – Codeguy007 2013-04-27 19:55:28

1

如果您的陣列的大小將是動態的,那麼請使用內部列表和ArrayList。這樣,您不必關心尺寸,因爲它在內部得到了處理。

0

最好的辦法是使用初始化ArrayList

public class Xmldata { 

    List<picture_data> pics; 

    public void addPics(picture_data data) { 
     if(pics == null) pics = new ArrayList<picture_data>(); 
     pics.add(data); 
    } 
} 

這裏pics列表將只如果picture_data類型的對象被添加到Xmldata

+0

我假設這個方法,我需要創建一個picture_data的實例,添加它的數據,然後將實例添加到我的XmlData實例。 – Codeguy007 2013-04-27 19:18:01

+0

是的..你需要在你的'while'循環中創建一個實例 – sanbhat 2013-04-27 19:20:45

+0

然後我如何從這個列表中獲取信息? – Codeguy007 2013-04-27 19:23:17

相關問題