此代码:
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
,为什么我不能在这里使用它?
答案 0 :(得分:5)
<强>解释强>
您无法在方法中使用public
和static
两者都保留用于类属性: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)
您无法在方法中将变量声明为public
或static
。删除它们或将其移出方法块以将其转换为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