无法在 java 中创建 public 静态最终字符串

Can't create a public static final String in java

此代码:

public class CommandPrompt {
  public static void main(String[] args) {
    public static final String prompt = System.getProperty("user.name")+">";
      System.out.println(prompt);
    }
  }

Returns 这个错误信息:

CommandPrompt.java:5: error: illegal start of expression
public static final String prompt = System.getProperty("user.name")+">";
^
CommandPrompt.java:5: error: illegal start of expression
public static final String prompt = System.getProperty("user.name")+">";
       ^
CommandPrompt.java:5: error: ';' expected
public static final String prompt = System.getProperty("user.name")+">";
             ^
3 errors

之前看到public static final String用过,为什么这里不能用?

说明

您不能在方法中使用 publicstatic
两者都为 class 属性保留:public 是一个 访问修饰符 并且 static 声明一个 class 作用域变量。

更正

public class CommandPrompt {
    public static void main(String[] args) {
      final String prompt = System.getProperty("user.name")+">";
      System.out.println(prompt);
    }
}

public class CommandPrompt {
    public static final String prompt = System.getProperty("user.name")+">";

    public static void main(String[] args) {
      System.out.println(prompt);
    }
}

相关问题

  • How do I declare a static variable inside the main method ?

您不能在方法中将变量声明为 publicstatic。删除它们或将其移出方法块以将其变成 field

这是因为你只能在你的 class 中创建 class 级别变量,你不说,而是在方法之外:)

public class CommandPrompt {
 public static final String prompt = System.getProperty("user.name")+">";
 public static void main(String[] args) {
  System.out.println(prompt);
 }
}

类似的东西应该有用。See this tutorial for more information

不能在方法中声明静态变量。

应该在class级声明。

请尝试

public class CommandPrompt {

public static  String prompt;

public static void main(String[] args) {

prompt=System.getProperty("user.name")+">";

System.out.println(prompt);

}

}