我需要在不使用getter的情况下访问不同类中的数组。我有一个扫描程序传递给一个创建数组的方法然后调用一个方法来递归填充数组与文件中的数据。然后我需要访问toString方法并使用该类中的数组(Student []列表)。
Public class Test
{
public static void main(String[] args) throws IOException
{
int actual = 0;
File input = new File("input.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
Scanner scan = new Scanner(input);
C155.createList(scan);
actual = C155.getSize();
// writer.write(C155.toString(C155.list, ??????));
writer.close();
}
}
public class C155 {
public static final int MAXSIZE = 22;
private static int size = 0;
public static Student[] createList(Scanner scan)
{
Student[] list = new Student[MAXSIZE];
return populateList(list, scan);
}
private static Student[] populateList( Student[] list, Scanner scan )
{
Student s;
if ( size < MAXSIZE && scan.hasNext() )
{
s = new Student(scan.next(), scan.next(),scan.next(),
scan.nextDouble(), scan.nextInt());
list[size] = s;
size++;
System.out.println(s);
return populateList(list, scan);
}
else
return list;
}
public static String toString(Student[] list, int n)
{
String all= "All Students \n";
for (int x = 0; x <= n; x++)
{
all += list[x].toString() + "\n";
}
return all;
}
我需要从Test类调用toString方法(需要Student []列表),但除了创建get方法之外,还不知道最好的方法。
答案 0 :(得分:0)
注意,C155类中的所有方法都是静态的,这可能不是最好的方法。
要回答您的问题,您的方法createList(扫描仪扫描)的返回类型为Student []。这就是你在main方法中获得对该数组的引用的地方。
Scanner scan = new Scanner(input);
Student[] studentArray = C155.createList(scan); <------
actual = C155.getSize();
writer.write(C155.toString(studentArray, studentArray.length())); <------
writer.close();
答案 1 :(得分:0)
如果按方法返回,为什么需要访问列表?就这样做:
Student[] list = C155.createList(scan);
writer.write(C155.toString(list, list.length()));