所以我有两个文件,一个是gradebook,它存储我的main和一些其他方法,另一个是FSCstudent,它有我的学生类和一些其他东西。我想从getter中获取一个整数值。
public static void searchByID(int idSearch) {
numStudents = FSCstudent.getNumStudents();
}
因此,这是我试图从中获取int值的尝试
public int getNumStudents() {
return numStudents;
}
然而,我只是不断得到错误非静态方法getNumStudents((不能从静态上下文中引用
是的,就像@GauravMall所说的,你可以通过在方法中添加静态修饰符来静态引用函数。另一种选择是创建FSCStudent
的实例并以非静态方式调用该方法。
静态版本:
您还必须使用static修饰符使成员numStudents
为static。
private static int numStudents;
public static int getNumStudents() {
return numStudents;
}
非静态版本:
FSCStudent student = new FSCStudent();
int students = student.getNumStudents();
您只需要这样做:
public static int getNumStudents() {
return numStudents;
}
但是要小心,因为您还需要将numStudents
设置为static。像这样:
private static int numStudents;
原因是您的主函数是一个静态函数,而静态函数不能访问非静态方法。如果您不知道什么是静态方法,请阅读以下内容:Java中的静态函数。
编辑:正如@Jason所指出的,如果您试图创建该FSCstudent
类的列表,则需要首先创建一个对象。代码(直接来自Jason(:
FSCStudent student = new FSCStudent();
int students = student.getNumStudents();