Ich bin relativ neu in Java, also Entschuldigung, wenn ich irgendwelche offensichtlichen Fehler gemacht habe. Ich versuche, die ArrayList "Nummern" von der Klasse "IO" in die Klasse "Interaktion" zu übergeben. Ich versuche, den Inhalt von Zahlen als Test auf der Konsole zu drucken. Wenn ich die Methode getNumbers aufruft, bleibt die Konsole leer. Was mache ich falsch? Hier ist, was ich habe:Pass ArrayLists von einer Klasse in eine andere
IO-Klasse:
import java.io.*;
import java.util.*;
public class IO {
public static void main (String[] args){
fileInput();
}
public static void fileInput() {
//variable setup
String file = "src/seats.txt";
int number;
ArrayList<Integer> numbers = new ArrayList<Integer>();
//Read file into the ArrayLists
try {
Scanner input = new Scanner(new FileReader(file));
while (input.hasNextLine()){ //read a line from file
number = input.nextInt();
input.nextLine();
numbers.add(number);
}
input.close();
}
catch (IOException e){
System.out.println(e);
}
public static ArrayList<Integer> getNumbers(){
ArrayList<Integer> numbers = new ArrayList<Integer>();
return numbers;
}
}
Interaktion Klasse:
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Interaction {
public static void main(String[] args) {
menu();
IO.fileInput();
}
static Scanner consoleInput = new Scanner (System.in);
public static void menu(){
String userChoice = "";
while (!userChoice.equals("QUIT")){
System.out.println("| MAIN MENU |");
System.out.println("|-----------------------------------|");
System.out.println("| |");
System.out.println("| 1.) Reserve a Seat |");
System.out.println("| 2.) Cancel a Reservation |");
System.out.println("| 3.) View Waiting List |");
System.out.println("| Quit.) Exit Program |");
System.out.println("| v0.1 |");
System.out.println("\nPlease make your selection:");
userChoice = consoleInput.next().toUpperCase();
switch(userChoice){
default:
if (!userChoice.equals("1") && !userChoice.equals("2") && !userChoice.equals("3")){
System.out.println("Invalid option, please try again.");
}
pause();
break;
case "1":
if (userChoice.equals("1")){
reserveSeat();
}
pause();
break;
case "2":
if(userChoice.equals("2")){
getNumbers();
cancel();
}
pause();
break;
case "3":
if(userChoice.equals("3")){
waitingList();
}
pause();
break;
case "QUIT":
System.out.println("Thank you for using our service!");
consoleInput.close();
}
}
}
private static void reserveSeat() {
String type, direction, userChoice = null;
int number;
private static void cancel() {
System.out.println("Test 2");
}
private static void waitingList() {
System.out.println("Test 3");
}
private static void pause(){
System.out.println("Press enter to return to the menu.");
Scanner enter = new Scanner(System.in);
enter.nextLine();
}
public static void getNumbers(){
ArrayList<Integer> numbers = IO.getNumbers();
System.out.println();
int sz = numbers.size();
for (int i = 0; i < sz; i++){
System.out.println(numbers.get(i).toString());
}
}
}
Ich bin mir bewusst, ähnliche Fragen vor gefragt worden, aber ich kann nichts besonders hilfreich. Jede Hilfe würde sehr geschätzt werden.
Edit: jetzt zeigt gesamte Interaktion Klasse, nicht nur getNumbers()
getNumbers gibt nur eine leere ArrayList zurück, das ist nicht besonders nützlich.Sie wollen IO ein ArrayList-Feld geben, es mit einer Methode füllen und es dann mit 'getNumbers()' zurückgeben. –