我创建了一个客户端对象,我想创建一个存储信息客户端对象的数组列表。
代码位置: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
有什么想法吗?
编辑:我的客户处理类别不是静态的!这就是我遇到的问题。它不是静态的,并且由于某种原因它告诉我它是静态的。
答案 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
静止。