2013-01-19 52 views
0

我創建了一個客戶端對象,我想創建一個存儲信息客戶端對象的數組列表。Java - ArrayLists

代碼位置:Client.java

ArrayList<Client> ClientInfo = new ArrayList<Client>(); 

public ArrayList<Client> getClientInfo() { 
    return ClientInfo; 
} 

代碼位置:客戶Handling.java

c.setClientId(Client.getClientInfo().size()); 

    Client.getClientInfo().add(c); 

錯誤在ClientHandling.java:

http://vvcap.net/db/ncilHaCfjUY6JeszCnWJ.png

http://vvcap.net/db/ySzyKvM2qT9mu7pqBCmZ.png

有什麼想法?

編輯:我的客戶端處理類不是靜態的!這就是我遇到的問題。它不是靜態的,出於某種原因,它告訴我它是靜態的。

+3

我想你真的需要先閱讀一些Java教程。 –

+0

很酷的故事兄弟,改變了我的java技能。 –

回答

2

您使用錯誤的語法。在Java中,類名以大寫字母開頭,變量名以小寫字母開頭。如果您使用Client作爲變量名稱,並且Client也是類,則您有問題,因爲Client.getClientInfo()是靜態調用,因爲Client是類。

所以,你的代碼應該是這樣的:

ArrayList<Client> clientInfo = new ArrayList<Client>(); 

public ArrayList<Client> getClientInfo() { 
    return clientInfo; 
} 

代碼位置:客戶Handling.java

c.setClientId(client.getClientInfo().size()); 

client.getClientInfo().add(c); 

最後,你在哪裏創建C端和客戶端的情況下?

0

Client是班級。您必須使getClientInfo()函數爲static。 當你在它的時候,也使得ClientInfo也是靜態的。

1

getClientInfo()是一種非靜態方法,您試圖從靜態方法調用它。您需要創建getClientInfo()所在的類的實例,並在該實例上進行調用。

public static void someMethod() { 
Client c=new Client(); 
c.setClientId(c.getClientInfo().size()); 
    c.getClientInfo().add(c); 
} 
+0

當我使'ClientInfo'靜態時,它給了我一個return語句的錯誤。它不是靜態的,我可以通過ethe整個代碼供您查看。如果我按Ctrl + F,並尋找靜態,我最終什麼也沒有。 –