.add()在Java中返回一个布尔值,如何作为列表返回

时间:2015-11-16 17:36:07

标签: java list arraylist

我已经读了一段时间了,我无法弄明白。在他们自己的文件中考虑这些类。

public class World {
    private List<Entity> entities = new ArrayList<>();

    public List<Entity> getEntities() {
        return entities;
    }

    public void setEntities(List<Entity> entities) {
        this.entities = entities;
    }
}

public Class Entity { 
    public Entity() {
        List<Entity> modifiedList = World.getEntities().add(this); // 1
        World.setEntities(modifiedList);
    }
}

类型不匹配:我无法从布尔值转换为列表(1)我如何解决这个问题?你怎么可能将布尔值转换为List?而且,静态概念让我感到困惑。如果有人可以指导我做一些关于静态和非静态的阅读,请在评论中发布!

1 个答案:

答案 0 :(得分:1)

你已经宣布了一个班级

public class World {
    private List<Entity> entities = new ArrayList<>();

    public List<Entity> getEntities() {
        return entities;
    }

    public void setEntities(List<Entity> entities) {
        this.entities = entities;
    }
}

声明了两个instance methodsgetEntitiessetEntities。这些是实例方法,因此您需要一个实例来调用它们。 That's what that duplicate was saying.

World world = new World();

World#getEntities的返回类型为ListList有一个add方法,其返回类型为boolean,其中boolean的值通常表示该值是否已添加。如果您不需要该信息,请忽略返回的值

List<Entity> entities = world.getEntities();
entities.add(this);

getEntities返回对上面示例中entities引用的对象中字段world引用的同一对象的引用。没有必要调用setEntities来重新分配它。

进一步阅读: