Java: 如何将数组数据传递给方法?

Java: How to pass the array data to a method?

我的问题和这两个有点相似;

  1. pass array to method Java,以及

但由于我只需要从方法中打印数组的数据,所以提供的答案让我碰壁。

这是我的代码:

    public static void main(String[] args) {
    Student[] s1 = {new Student("Karen", "male", 121, "N", 2, "e"),
            new Student("K", "male", 122, "e", 3, "e"),
            new Student("L", "male", 123, "", 4, ""),
            new Student("M", "male", 124, "", 5, ""),
            new Student("O", "female", 125, "", 1, "")};

    s1.studentInfo(); //My questions involves something like this

}

这里的设置是这样的

new Student(String StudentName, String Gender, int StudentNumber, String program, int YearLevel, String Orgs)

这是我希望数组数据可访问的方法,然后打印它。

    public void studentInfo(){
    System.out.println("Student name: "+super.getName());
    System.out.println("Gender: "+super.getGender());
    System.out.println("Student number: "+super.getStudNumber());
    
    System.out.println("Program: "+getProgram());
    System.out.println("Year Level: "+getYrlevel());
    System.out.println("Organization: "+getOrg());
}

看起来你想要的是这样的:

private static void studentInfo(final Student[] students) {
    for (final Student student : students) {
        System.out.println("Student name: "+ student.getName());
        System.out.println("Gender: "+ student.getGender());
        System.out.println("Student number: "+ student.getStudNumber());

        System.out.println("Program: "+ student.getProgram());
        System.out.println("Year Level: "+ student.getYrlevel());
        System.out.println("Organization: "+ student.getOrg());
    }
}

你可以这样称呼它:

studentInfo(s1);

另请注意,参数名称应按照 Java naming conventions 以小写字母开头。

只需遍历数组并将元素传递给 studentInfo 方法:

public static void main(String[] args) {
    Student[] s1 = {new Student("Karen", "male", 121, "N", 2, "e"),
            new Student("K", "male", 122, "e", 3, "e"),
            new Student("L", "male", 123, "", 4, ""),
            new Student("M", "male", 124, "", 5, ""),
            new Student("O", "female", 125, "", 1, "")};

    for(Student s : s1) {
        studentInfo(s);
    }

}

public static void studentInfo(Student s){
    System.out.println("Student name: "+s.getName());
    System.out.println("Gender: "+s.getGender());
    System.out.println("Student number: "+s.getStudNumber());
    
    System.out.println("Program: "+s.getProgram());
    System.out.println("Year Level: "+s.getYrlevel());
    System.out.println("Organization: "+s.getOrg());
}

先定义方法如

public void studentInfo(){
    System.out.println("Student name: "+this.getName());
    System.out.println("Gender: "+this.getGender());
    System.out.println("Student number: "+this.getStudNumber());
    
    System.out.println("Program: "+this.getProgram());
    System.out.println("Year Level: "+this.getYrlevel());
    System.out.println("Organization: "+this.getOrg());
}

在学生 class 中。然后你可以在任何你需要的地方使用:

Stream.of(s1).forEach(Student::studentInfo)

其中 s1 是您的学生数组。