Java - ArrayLists

时间:2013-01-19 11:59:22

标签: java arrays static

我创建了一个客户端对象,我想创建一个存储信息客户端对象的数组列表。

代码位置:Client.java

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

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

代码位置:Client 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 个答案:

答案 0 :(得分:2)

您使用了错误的语法。在Java类名称中以大写字母开头,变量名称以小写字母开头。如果您使用Client作为变量名称而Client也是一个类,则您遇到问题,因为Client.getClientInfo()是一个静态调用,因为Client是一个类。

所以你的代码应该是这样的:

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

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

代码位置:Client Handling.java

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

client.getClientInfo().add(c);

最后,你在哪里创建c和客户端的实例?

答案 1 :(得分:1)

getClientInfo()是一种非静态方法,您尝试从静态方法调用它。你需要创建getClientInfo()所在的类的实例并在该实例上进行调用。

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

答案 2 :(得分:0)

Client是班级。您必须将getClientInfo()函数设为static。 当你在它的同时,也使ClientInfo静止。