为什么我不能写一个静态字符串?

-1 java

import java.util.*;

public class HelloWorld{

   public static void main(String []args){
       static String[] str={"one","two"};
       Date date =new Date();
       Calendar cal = Calendar.getInstance();
       String year = "2018";
       String month ="4";
       int day =10;

       cal.set(Integer.parseInt(year),Integer.parseInt(month),day);
       System.out.println(cal.get(Calendar.DAY_OF_WEEK));
       // etc.
    }
}
Run Code Online (Sandbox Code Playgroud)

错误信息 :

错误:非法开始表达

static String [] str = {"one","two"};

ern*_*t_k 6

那是无效的语法.您不会将static修改器应用于局部变量.删除static.

如果str是一个类变量,那么在方法之外声明它:

public class HelloWorld{
    static String[] str={"one","two"};
Run Code Online (Sandbox Code Playgroud)

Static是类型成员(接口,类,枚举......)的概念.它允许您仅使用类名引用变量,在本例中为(HelloWorld.str).当变量属于局部范围时,如在方法体中,它不能声明为静态,因为它不是类的成员.