Java 陷入了如何添加到另一个类的列表中
我有一个类DB,它包含一个列表:Java 陷入了如何添加到另一个类的列表中,java,list,class,methods,Java,List,Class,Methods,我有一个类DB,它包含一个列表: private List<User> users; 另一个类User需要创建User类的实例,因此我尝试使用以下代码: public User(String name) { DB.addUser(name); 但它返回的错误是,我不能对非静态方法进行静态引用。我不知所措,因为要创建User类的实例,我必须将其放入列表中,但由于列表是私有的,我必须使用DB的方法,但我不能这样做而不出错。。。有什么方法可以解决这个问题吗?这个函数正在
private List<User> users;
另一个类User需要创建User类的实例,因此我尝试使用以下代码:
public User(String name) {
DB.addUser(name);
但它返回的错误是,我不能对非静态方法进行静态引用。我不知所措,因为要创建User类的实例,我必须将其放入列表中,但由于列表是私有的,我必须使用DB的方法,但我不能这样做而不出错。。。有什么方法可以解决这个问题吗?这个函数正在以静态方式调用
addUser
public User(String name) {
DB.addUser(name);
}
但是下面的函数需要实例化一个对象才能调用它(非静态)
所以把它改成
public static User addUser(String name) { ... }
或者创建一个DB实例并调用该方法
public User(String name) {
DB db = new DB();
db.addUser(name);
}
似乎有些基础知识你还不清楚
要提供更具体的答案,等待进一步请求的详细信息您能否在DB static中使用
addUser
功能?@RishavKundu,这是没有意义的。很明显,它是一个改变状态的方法。您需要创建一个DB实例,或者使addUser静态化,为什么不向DB添加一个getUsers()方法来返回列表的引用,然后调用getUsers().add(新用户(someName));亚瑟,addUser
到底做什么?在你的问题中添加代码。第二个选项没有意义。为什么每次创建新用户时都要创建新数据库?。。?我没有考虑他的问题的应用逻辑,我在这里只是为了修复一个编译错误。他不是在寻求逻辑方面的帮助
public static User addUser(String name) { ... }
public User(String name) {
DB db = new DB();
db.addUser(name);
}