所以在我的类中声明为“ public class pcb ”,我有以下构造函数: public pcb(int p,int a,int b)。
在 public static void main(String [] args)我尝试在for循环中调用构造函数,在其中我将“pcb”添加到数组中的不同位置。这是for循环,最后一行是我得到错误的地方:
for(int i=0; i<numJob; i++){
pI = scan.nextInt();
arr = scan.nextInt();
bst = scan.nextInt();
notHere[i]=new pcb(pI, arr, bst);
}
我做错了什么?是语法还是我程序的结构。我没有那么多地使用Java,我认为这是我的主要问题。
答案 0 :(得分:20)
您尚未提供所有相关代码,但错误表明pcb
是fbMain
的内部类:
public class fbMain {
//...
public class pcb {
}
//...
}
您可以通过pcb
静态修复此错误:
public static class pcb {
}
或者将类移动到自己的文件中。或者,如果pcb
不能是静态的(因为它与fbMain
的实例相关联),您可以通过传递pcb
的实例来创建新的fbMain
:
notHere[i] = instanceOfFbMain.new pcb(pI, arr, bst);
这可能是你想要的第一个。另请注意,按照惯例,Java类型名称以大写字母开头。
答案 1 :(得分:3)
将static
添加到您的类声明中,如下所示
public static class pcb...