如何解决
public 和 static 不能在 方法 定义中使用。所以这个错误告诉你,方法中定义的变量唯一允许的修饰符是final。
您可以通过删除有问题的修饰符来修复它:
class MyClass
{
public static void main(String[] args){
final String Name = "Robin Wilson";
}
}
或者像这样将变量定义移出方法
class MyClass
{
public static void main(String[] args){
}
public static final Name = "Robin Wilson";
}
说明
要了解原因,您需要了解三个修饰符(public 和 static 和 final)各自的含义。 String Name 只是说我们正在跟踪 String 并将其称为 Name。
公开
class MyClass
{
public String Name = "Robin Wilson";
}
public 表示程序的任何部分都可以读取它(否则它只能由编写在MyClass 类中的代码读取)。
public 指定其他代码可以访问它。在方法内部,这是没有意义的。定义在方法内部的变量只能在该方法内部访问,一旦方法完成,它们就会被丢弃。所以这些变量不可能是public。
静态
class MyClass
{
static String Name = "Robin Wilson";
}
static 表示Name 变量是类本身的一部分,而不是类的实例。换句话说,MyClass 类的所有实例共享同一个 Name 变量。
static 指定如何访问它(在类的实例上或通过类本身)。在方法内部这没有意义,因为局部变量在方法关闭后被丢弃,所以没有其他东西可以访问它。
最终
class MyClass
{
final String Name = "Robin Wilson";
}
final 表示Name 的值一旦被分配就永远不会改变。
final 描述了如何使用该变量。它在方法中是有意义的,因为它与访问无关。