静态块中不允许使用公共修饰符?

Ale*_*lls 0 java

我有这个:

public class Models {

  public static class User extends BaseModel {


    public static {

      public final TableField ID = new TableField("user_id", "userId");

      public final TableField HANDLE = new TableField("user_handle", "userHandle");

      public final TableField EMAIL = new TableField("user_email", "userEmail");

    }

  }

}
Run Code Online (Sandbox Code Playgroud)

java 说 public 不允许在“public static {}”块中的 static 之前或 final 之前作为修饰符。有谁知道为什么?也许我不明白静态块与将所有 3 个字段声明为public final static.

这是我看到的:

enter image description here

和这个

enter image description here

kha*_*hik 5

public,作为访问修饰符,不能应用于代码块,也不能应用于代码块内部的局部变量。

似乎您只想声明静态最终字段:

...
public static final TableField ID = new TableField("user_id", "userId");
...
Run Code Online (Sandbox Code Playgroud)

无需为此使用static块。