无法在java中创建公共静态final String

时间:2015-03-31 08:48:42

标签: java string static public final

此代码:

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

返回此错误消息:

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,为什么我不能在这里使用它?

4 个答案:

答案 0 :(得分:5)

<强>解释

您无法在方法中使用publicstatic 两者都保留用于类属性:public访问修饰符static声明类范围变量。

更正

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);
    }
}

相关问题

答案 1 :(得分:1)

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

答案 2 :(得分:1)

无法在方法中声明静态变量。

应该在班级声明。

请尝试

public class CommandPrompt {

public static  String prompt;

public static void main(String[] args) {

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

System.out.println(prompt);

}

}

答案 3 :(得分:0)

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

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

相关问题