Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
声明时出错&;在java中将字符串初始化为静态_Java_String_Exception - Fatal编程技术网

声明时出错&;在java中将字符串初始化为静态

声明时出错&;在java中将字符串初始化为静态,java,string,exception,Java,String,Exception,我试图将局部字符串变量声明并初始化为static,但出现编译错误,显示非法修饰符static。为什么会这样 这是我的密码: public class StringInstance { public static void main(String[] args) { static String s = "a"; if(s instanceof String){ System.out.println("Yes it is"); } } } 您

我试图将局部字符串变量声明并初始化为static,但出现编译错误,显示非法修饰符static。为什么会这样

这是我的密码:

public class StringInstance {
    public static void main(String[] args) {
    static String s = "a";

    if(s instanceof String){
        System.out.println("Yes it is");
     }
  }
}

您声明的字符串将是静态的,因为它的作用域是静态的,所以不需要
static
修饰符。但是,如果您想在
main()
的范围之外声明它为静态的,那么可以这样做:

public class StringInstance {
  static String s = "a";
    public static void main(String[] args) {

    if(s instanceof String){
        System.out.println("Yes it is");
    }
  }
}

您声明的字符串将是静态的,因为它的作用域是静态的,所以不需要
static
修饰符。但是,如果您想在
main()
的范围之外声明它为静态的,那么可以这样做:

public class StringInstance {
  static String s = "a";
    public static void main(String[] args) {

    if(s instanceof String){
        System.out.println("Yes it is");
    }
  }
}

static
仅适用于类成员。您不能在方法中声明
static
变量。@faizalvasaya,因为错误表明方法中不能有static字段。那没有道理。您需要删除静态修饰符。
static
表示类级别。您必须在类级别声明它们。
static
仅适用于类成员。您不能在方法中声明
static
变量。@faizalvasaya,因为错误表明方法中不能有static字段。那没有道理。您需要删除静态修饰符。
static
表示类级别。您必须在类级别声明它们。我的疑问是,由于main是一个静态块,所以应该可以在其中声明为静态。@faizalvasaya它已经是静态的,没有显式的
static
修饰符,因为它在静态范围内。谢谢@Jonah Haney!您澄清了我的疑问。我的疑问是,因为main是一个静态块,所以应该可以在其中声明为静态。@faizalvasaya它已经是静态的,没有显式的
static
修饰符,因为它在静态范围内。谢谢@Jonah Haney!你澄清了我的疑问。