Java 从另一个类访问数组列表
嘿,我如何从另一个类访问arraylist?与在arraylist中调用对象方法一样,但从MasterControlPanel类调用?。非常感谢您的帮助。因为get(0)似乎不起作用Java 从另一个类访问数组列表,java,Java,嘿,我如何从另一个类访问arraylist?与在arraylist中调用对象方法一样,但从MasterControlPanel类调用?。非常感谢您的帮助。因为get(0)似乎不起作用 //example public class MasterControlPanel{ public static Building building = new Building(); public static void main(String[] args) { buildi
//example
public class MasterControlPanel{
public static Building building = new Building();
public static void main(String[] args) {
building.rooms.get(0).*whatever*
}
}
public class Building
{
public static Rooms rooms[] = new Rooms[4];
private float outsideTemp;
ArrayList rooms = new ArrayList();
rooms.add(*new instance*);
rooms.add(*new instance*);
public Building() {
}
}假设您的ArrayList实例是私有的,您不希望它是静态的(是吗?)。首先,创建一个getter方法,例如:
public ArrayList getRooms()
{
返回室;
}
现在,在另一个类上创建一个对象:
Building b=new Building();
并访问以下列表:
b.getRooms();
添加一个getter:
public class Building{
public static Rooms roomArray[] = new Rooms[4];
private float outsideTemp;
List<Room> rooms;
public Building(float temp){
rooms = new ArrayList<Room>();
rooms.add(new Room());
rooms.add(new Room());
outsideTemp = temp;
}
public List<Rooms> getRoomList() {
return this.rooms;
}
}
旁白:为什么不定义列表的类型?另外,请注意,我已将代码移到此类的构造函数中,并修复了名称冲突。另外,为什么使用静态数组?要考虑的事情
最后注意:向构造函数添加了float
,以确保它已初始化。如果您的main()
方法确实是您的主方法,则您可能尚未初始化ArrayList
。把那些房间放在你知道它们会被调用的地方,然后再尝试访问列表
public class Building {
public final ArrayList rooms = new ArrayList();
public Building(){
rooms.add(new Ballroom());
rooms.add(new Library());
}
}
因为rooms.add()
调用不在方法、构造函数或初始值设定器中,所以这不会编译(即使在替换了*新实例*
位之后)。还有一个数组和一个名为rooms
的数组列表。你能把它编辑成一个文件吗?你说不工作是什么意思?你能发布实际代码吗?在建筑
中有两个同名变量:房间
。这真的是你的代码吗?您真的有一个与实例变量同名的静态变量吗?什么不起作用?显示一些错误,也许?是的,对不起,这只是一个例子,我只需要知道get(0)是否应该工作?我当时有点着急,我应该更仔细地解释一下!很抱歉
public class Building {
public final ArrayList rooms = new ArrayList();
public Building(){
rooms.add(new Ballroom());
rooms.add(new Library());
}
}