坚持如何添加到另一个类的列表

时间:2015-06-26 20:42:43

标签: java list class methods

我有一个包含列表的类DB:

private List<User> users;

以及允许将用户添加到列表中的addUser方法

public User addUser(String name) {

另一个类User需要创建User类的实例,所以我尝试使用以下代码:

public User(String name) {
        DB.addUser(name);

但是它返回了我无法对非静态方法进行静态引用的错误。我不知所措,因为要创建User类的实例,我必须把它放到列表中,但由于列表是私有的,我必须使用DB的方法,但我可以&# 39;没有出错就这样做......有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:0)

此函数以静态方式调用addUser

public User(String name) {
    DB.addUser(name);
}

但是下面的这个函数需要实例化一个对象才能调用它(非静态)

public User addUser(String name) { ... }

所以将其改为

public static User addUser(String name) { ... }

或创建DB实例并调用方法

public User(String name) {
    DB db = new DB();
    db.addUser(name);
}

答案 1 :(得分:0)

似乎有些基础知识对你来说并不清楚。

  1. 会员总是私密的,为了与他们互动,你应该创建公共的设定者和吸气者。

    public List getUsers(){ 回报用户; }

    public void getUsers(List users){ this.users =用户; }

  2. 作为一个好的编码标准,命名应描述提供特定操作的行为 因此

  3. 用户addUser(字符串名称)

    考虑到它的实际实现似乎很模糊,因为将User添加到列表中。

    1. 如果DB类是依赖项,那么它应该被实例化 假设您从main

      调用此代码

      用户user = new User(); DB dbInstance = new DB(); dbInstance.setUsers(new ArrayList()); dbInstance.getUsers()添加(用户);

    2. 提供更具体的答案,等待进一步要求的详细信息