我在班级上创建了一个静态字段c
,但它生成了一个错误illegal start of expression
。
请帮我解决这个问题。
public static void main(String[] args) {
System.out.println("program started.");
static Controller c; //Where the error is
try {
Model m = new Model();
View v = new View();
c = new Controller(m,v);
c.sendDataToView();
c.showView();
} catch(Exception ex) {
System.out.println("error");
}
}
答案 0 :(得分:2)
您无法在方法内声明static
字段(或任何其他字段),即使它是static
字段。
您可以在方法之外声明static
字段:
static Controller c;
public static void main(String[] args) {
System.out.println("program started.");
try {
Model m = new Model();
View v = new View();
c = new Controller(m,v);
c.sendDataToView();
c.showView();
}catch(Exception ex) {
System.out.println("error");
}
}
或者一个普通的老式局部变量:
public static void main(String[] args) {
System.out.println("program started.");
Controller c;
try {
Model m = new Model();
View v = new View();
c = new Controller(m,v);
c.sendDataToView();
c.showView();
}catch(Exception ex) {
System.out.println("error");
}
}
答案 1 :(得分:1)
您无法在方法中声明静态字段。
将其移到外面:
static Controller c;
public static void main(String[] args)
{
System.out.println("program started.");
try {
Model m = new Model();
View v = new View();
c = new Controller(m,v);
c.sendDataToView();
c.showView();
} catch(Exception ex) {
System.out.println("error");
}
}