【问题标题】:Can't create a public static final String in java无法在java中创建公共静态最终字符串
【发布时间】:2015-06-04 12:58:35
【问题描述】:

这段代码:

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用过,这里为什么不能用?

【问题讨论】:

    标签: java string static public final


    【解决方案1】:

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

    它应该在类级别中声明。

    请尝试

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

    【讨论】:

      【解决方案2】:

      说明

      您不能在方法中使用 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);
          }
      }
      

      相关问题

      【讨论】:

        【解决方案3】:

        这是因为你只能在你的类里面创建类级别的变量,你没有说,而是在一个方法之外:)

        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

        【讨论】:

        • 类级静态)和实例级非静态 )
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-31
          • 2016-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-19
          • 2017-02-23
          相关资源
          最近更新 更多