public class Thing
{
public static void main (String[] args)
{
//I set my veriables and prompt user to enter number of names
//Prompt user for First and Last name and Store names in an array of classes
Arrays.sort(listOfName, new Comparator<otherClass>()//Sort names according to last name
//code here for that (which i have but not the issue)
for (int i = 0; i<numName; i++)
{
ans = JOptionPane.showInputDialog(null,"How Many Students does: \n "+ listOfName[i]+ " Have");
int val = Integer.parseInt(ans);
otherClass.setnumStudents(val);// in my Separate class I have a setnumStudents
}
for(int i = 0; i<numName; i++)
{
System.out.println(listOfName[i]);
}
}
在我的程序的早些时候,我根据单独的类otherClass
将我的数组设置为存储,并且int numStudents
最初设置为0,在收集firstName和lastName之后我按字母顺序排列数组,然后询问如何每个人都有很多学生。使用setter setnumStudents
我尝试更改存储在数组中的numStudents
。我的代码就是这样,我收到了这个错误:
non-static method setnumStudents(int) cannot be referenced from a static context
otherClass.setnumStudents(val);
^
感谢您对此问题的任何帮助
答案 0 :(得分:1)
我想你想要:
listOfName[i].setnumStudents(val);
或者那条线上的东西。 Java编码约定通常在camel的情况下具有以大写字母开头的类名。 otherClass
是一个班级名称吗?它应该OtherClass
以避免混淆。
我不知道listofName[i]
是否是'listOfTutor [i]'的正确实例,但您需要找到otherClass
的实例
答案 1 :(得分:0)
非静态方法setnumStudents(int)不能从a引用 静态上下文
表示您正在使用类访问非静态方法,而您应该使用实例(对象)。
以下
otherClass.setnumStudents(val);
是otherClass你提到的另一个类的名字?在这种情况下,您需要实例化此类并使用该实例。
BTW,在Java类名中通常以大写字母开头。