我有一个学生对象课,我必须创建这些学生的arraylist。 我试图创建将信息输入到学生对象中的程序,然后将其存储到arraylist中。
此数组的第一个命令是将一个学生对象添加到数组中,下一个命令是从数组中删除一个学生。
我如何让用户输入命令然后转到另一种导致存储信息的方法,如果我每次尝试编译时都会出现静态错误。
import java.util.Scanner;
import java.util.ArrayList;
public class CollegeTester
{
Scanner input = new Scanner(System.in);
ArrayList<Student> array = new ArrayList<Student>();
CollegeTester collegeTester = new CollegeTester();;
public static void main(String[] args)
{
new CollegeTester().getCommand();
}
public void getCommand()
{
System.out.println("Enter a command: ");
String command = input.nextLine();
if(command.equals("add"))
collegeTester.addCommand();
}
public void addCommand()
{
System.out.println("Enter a Name: ");
String name = input.nextLine();
}
}
答案 0 :(得分:0)
还有另一个漏洞。你的主要方法不是静态的。没有它你的程序将无法运行。将其更改为
public static void main(String[] args)
{
}
此外,您无法直接从静态方法访问非静态方法。 您应该实例化类,然后调用方法或使方法静态。
public static void main(String[] args){
CollegeTester collegeTester = new CollegeTester();
collegeTester.addCommand();
}
如果您想针对特定选项调用特定方法,则应使用switch case
。
答案 1 :(得分:0)
您正尝试从静态方法访问非静态方法。首先创建一个CollegeTester类的实例,而不是调用它。例如:
import java.util.ArrayList;
import java.util.Scanner;
public class CollegeTester {
private Scanner input = new Scanner(System.in);
private ArrayList<Student> array = new ArrayList<Student>();
public static void main(String[] args) {
new CollegeTester().getCommand();
}
public void getCommand() {
System.out.println("Enter a command: ");
String command = input.nextLine();
if (command.equals("add"))
this.addCommand();
}
public void addCommand() {
System.out.println("Enter a Name: ");
String name = input.nextLine();
}
}
public class Student {
// Some properties and fty.
}