在java中使用super()时出错 公共类DriveActivity扩展活动{ 无效方法_195(驱动活动变量1){ 这个。这个$0=var1; 超级(); } 无效方法_206(驱动活动变量1){ 这个。这个$0=var1; 超级(); } 公共void onClick(视图var1){ if(TimerService.modeNum

在java中使用super()时出错 公共类DriveActivity扩展活动{ 无效方法_195(驱动活动变量1){ 这个。这个$0=var1; 超级(); } 无效方法_206(驱动活动变量1){ 这个。这个$0=var1; 超级(); } 公共void onClick(视图var1){ if(TimerService.modeNum,java,android,Java,Android,为什么我不能在这个方法中使用super?它说 “构造函数调用必须是构造函数中的第一条语句”您不能在方法中使用super()。如错误所述: 构造函数调用必须是构造函数中的第一条语句 如果要使用它,它必须在构造函数内部和第一行 public class DriveActivity extends Activity { void method_195(DriveActivity var1) { this.this$0 = var1; super();

为什么我不能在这个方法中使用super?它说 “构造函数调用必须是构造函数中的第一条语句”

您不能在方法中使用
super()。如错误所述:

构造函数调用必须是构造函数中的第一条语句

如果要使用它,它必须在构造函数内部第一行

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()
只能在构造函数内部使用,并且它必须是构造函数中的第一条语句。

而这个问题是完全多余的,因为错误消息会准确地告诉您问题所在(“构造函数调用必须是构造函数中的第一条语句”)这是因为显式定义了构造函数的结构:

构造函数主体的第一条语句可以是对同一类或直接超类的另一个构造函数的显式调用(§8.8.7.1)


var3.方法_206(本);还请给出未定义的错误答案问题本身是否存在错误。因为超级构造函数调用必须是构造函数中的第一个语句。多余的问题是多余的。在SO允许的范围内,您为同一个问题发布了多少个答案可能是重复的;)但如果您可以只发布旧答案,为什么要发布新答案呢?因为我因为无法编辑。当我尝试编辑时出现问题,不允许我编辑。我刚刚编辑了您以前的答案,它似乎工作正常(至少现在)。奇怪……可能是什么问题?当您按下“保存编辑”按钮时,您是否看到系统中的任何信息?
void method_206(DriveActivity var1) {
    this.this$0 = var1;
    super();
 }
ConstructorBody:
    { ExplicitConstructorInvocationopt BlockStatementsopt }