如何在Java中只声明一次具有特定索引的数组?

如何在Java中只声明一次具有特定索引的数组?,java,arrays,methods,Java,Arrays,Methods,我用各种方法来创造一个选择你自己的冒险故事。其中一种方法如下: public static void storeChoices(){ Scanner sc = new Scanner(System.in); String arr [] = new String[6]; if(arr[0] == null){ arr[0] = "Gucci"; arr[1] = "Tesla"; arr[2] = "Canada Goose"; arr[3] = "Rolex"; ar

我用各种方法来创造一个选择你自己的冒险故事。其中一种方法如下:

 public static void storeChoices(){

Scanner sc = new Scanner(System.in);

String arr [] = new String[6];

if(arr[0] == null){
  arr[0] = "Gucci";
  arr[1] = "Tesla";
  arr[2] = "Canada Goose";
  arr[3] = "Rolex";
  arr[4] = "Saks Fifth Avenue";
  arr[5] = "Nike";
}

for(int i = 0; i < arr.length; i++){
  System.out.println("  " + (i+1) + ")" + arr[i]);
}
System.out.println("Pick a number as your choice: ");

int choice = sc.nextInt();

sc.nextLine();

for(int x = 0; x < arr.length; x++){
  arr[choice] = "Dr. Java has already visited this store";
}


}
publicstaticvoidstorechoices(){
扫描仪sc=新的扫描仪(System.in);
字符串arr[]=新字符串[6];
if(arr[0]==null){
arr[0]=“古驰”;
arr[1]=“特斯拉”;
arr[2]=“加拿大鹅”;
arr[3]=“劳力士”;
arr[4]=“萨克斯第五大道”;
arr[5]=“耐克”;
}
对于(int i=0;i

我只想在开始时声明数组一次,因为它会根据用户选择的选项而变化。每次我再次调用该方法时,声明数组会导致我所做的任何更改重置。如何只声明该数组一次,以便在调用该方法时不会重置所做的更改?我刚刚学习了一些方法,所以我对这方面还很陌生。

如果您没有使用线程机制,那么将其声明为类的静态变量

public class TestClass1 {

static String  arr [] = new String[6];

public static void storeChoices(){

    Scanner sc = new Scanner(System.in);

    if(arr[0] == null){
      arr[0] = "Gucci";
      arr[1] = "Tesla";
      arr[2] = "Canada Goose";
      arr[3] = "Rolex";
      arr[4] = "Saks Fifth Avenue";
      arr[5] = "Nike";
    }

    for(int i = 0; i < arr.length; i++){
      System.out.println("  " + (i+1) + ")" + arr[i]);
    }
    System.out.println("Pick a number as your choice: ");

    int choice = sc.nextInt();

    sc.nextLine();

    for(int x = 0; x < arr.length; x++){
      arr[choice] = "Dr. Java has already visited this store";
    }


    }
公共类TestClass1{
静态字符串arr[]=新字符串[6];
公共静态void storeChoices(){
扫描仪sc=新的扫描仪(System.in);
if(arr[0]==null){
arr[0]=“古驰”;
arr[1]=“特斯拉”;
arr[2]=“加拿大鹅”;
arr[3]=“劳力士”;
arr[4]=“萨克斯第五大道”;
arr[5]=“耐克”;
}
对于(int i=0;i

}

在非常简单的情况下,只需将其定义为字段,然后检查是否为null

public class Main {

    String [] arr = null;

    public static void main(final String[] args) {

        new Main().myMethod ();
    }

    private void myMethod () {

        if (arr == null) {
            arr = new String [] {"Gucci" , "Tesla", "Canada Goose"};
        }

    }
}

从局部变量到字段的更改在方法之外声明它我该怎么做?这给了我一大堆错误谢谢你的快速回答!