关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
26天前关门了。
改进这个问题
我需要在另一个方法中使用来自一个方法的变量。代码如下:
public static void secondMain() {
BufferedReader reader;
var lines = new ArrayList<String>();
var rooms = new ArrayList<Room>();
try {
reader = new BufferedReader(new FileReader("rooms.txt"));
String line = reader.readLine();
lines.add(line);
while (line != null) {
line = reader.readLine();
lines.add(line);
}
reader.close();
for (int i = 0; i < lines.size() - 1; i++){
String[] words = lines.get(i).split(" ");
var room = new Room();
room.roomNum = Integer.parseInt(words[0]);
room.roomType = (words[1]);
room.roomPrice = Double.parseDouble(words[2]);
room.hasBalcony = Boolean.parseBoolean(words[3]);
room.hasLounge = Boolean.parseBoolean(words[4]);
room.eMail = (words[5]);
rooms.add(room);
}
这里是需要使用的地方:
public static void reserveRoom() {
// TODO Auto-generated method stub
String choice = "";
do {
secondMain();
System.out.println("\n-- ROOM RESERVATION --");
System.out.println("Please enter the room number you wish to reserve");
System.out.println("Q - Quit");
Room selectedRoom = null;
var searchRoomNum = input.nextInt();
for(int i = 0; i < rooms.size(); i++){
if(rooms.get(i).roomNum == searchRoomNum){
selectedRoom = rooms.get(i);
System.out.println("Room Number: " + selectedRoom.roomNum);
System.out.println("Room Type: " + selectedRoom.roomType);
System.out.println("Room Price: " + selectedRoom.roomPrice);
System.out.println("Balcony: " + selectedRoom.hasBalcony);
System.out.println("Lounge: " + selectedRoom.hasLounge);
System.out.println("Email: " + selectedRoom.eMail);
System.out.println("-------------------");
}
}
}
我当前的错误在for循环中,我正在针对数组测试条件。”无法解析文件室”。
2条答案
按热度按时间wa7juj8i1#
而不是
public static void secondMain
,你能做到的public static ArrayList<Room> secondMain
在secondmain的末尾:return rooms
.在
reserveRoom
方法:调用secondmain方法时:ArrayList<Room> rooms = secondMain();
现在你应该可以使用rooms
内部reserveRoom
方法euoag5mw2#
如果你想访问
rooms
从secondMain()
中的方法reserveRoom()
,你应该把它从secondMain()
当你打电话的时候。这可以通过更改方法的返回类型来实现public static void secondMain()
成为public static ArrayList<Room> secondMain()
然后在for循环之后secondMain()
将所有房间添加到阵列列表后,应返回rooms
打电话的人。这可以作为try-catch块之后的一条语句添加。这样您就可以从
reserveRoom()
. 打电话的线路应该变成:
这将允许您访问中的房间
reserveRoom()