public class DriveActivity extends Activity {
void method_195(DriveActivity var1) {
this.this$0 = var1;
super();
}
void method_206(DriveActivity var1) {
this.this$0 = var1;
super();
}
public void onClick(View var1) {
if(TimerService.modeNum < TimerService.modeCount) {
++TimerService.modeNum;
} else {
TimerService.modeNum = 1;
}
DriveActivity.access$11(this.this$0).setText(Integer.toString(TimerService.modeNum));
this.this$0.drive_stop();
DriveActivity.access$12(this.this$0);
}
};
var3.method_206(this);
为什么我不能在这个方法中使用super?它表示 “构造函数调用必须是构造函数中的第一个语句”
答案 0 :(得分:3)
void method_206(DriveActivity var1) {
this.this$0 = var1;
super();
}
你试图从一个方法调用超类构造函数,这是错误的。super()
只能在构造函数中使用,它必须是构造函数中的第一个语句。
答案 1 :(得分:2)
您不能在方法中使用super()
。正如错误所述:
构造函数调用必须是构造函数中的第一个语句
如果您想使用它,则必须在构造函数内,并且第一行。
答案 2 :(得分:0)
虽然这个问题完全是多余的,因为错误消息告诉你完全问题是什么(“构造函数调用必须是构造函数中的第一个语句”)原因是因为Java Language Specification section 8.8.7显式定义了构造函数的结构:
构造函数体的第一个语句可能是对同一个类或直接超类(§8.8.7.1)的另一个构造函数的显式调用。
ConstructorBody:
{ ExplicitConstructorInvocationopt BlockStatementsopt }