我已经读了一段时间了,我无法弄明白。在他们自己的文件中考虑这些类。
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?而且,静态概念让我感到困惑。如果有人可以指导我做一些关于静态和非静态的阅读,请在评论中发布!
答案 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 methods,getEntities
和setEntities
。这些是实例方法,因此您需要一个实例来调用它们。 That's what that duplicate was saying.
World world = new World();
World#getEntities
的返回类型为List
。 List
有一个add
方法,其返回类型为boolean
,其中boolean
的值通常表示该值是否已添加。如果您不需要该信息,请忽略返回的值
List<Entity> entities = world.getEntities();
entities.add(this);
getEntities
返回对上面示例中entities
引用的对象中字段world
引用的同一对象的引用。没有必要调用setEntities
来重新分配它。
进一步阅读: