Константы массивов могут использоваться только при ошибке инициализаторов - PullRequest
11 голосов
/ 14 июня 2011

Рассмотрим:

public proj 3 {

    static string [][]Item;

    public static void main(String [] args){

        Item[][] = {
             {"BH," , "Backhoe,"            , "200.00"},
             {"ER," , "Electric Rake,"      ,  "10.00"},
             {"EL," , "Electric Lawnmower," ,  "15.00"},
             {"TR," , "Trencher"            ,  "35.00"},
             {"MU," , "Mulcher,"            ,  "20.00"},
             {"TS," , "Tree Sprayer,"       ,  "22.00"},
             {"CP," , "Cider Press,"        ,  "30.00"},
             {"PR," , "Pruner,"             ,  "12.00"},
             {"GE," , "Gas Edger,"          ,  "20.00"},
             {"RO," , "Roller,"             ,   "8.00"},

Как сделать так, чтобы я мог вызывать массив из другого метода?

Ответы [ 5 ]

13 голосов
/ 14 июня 2011

Это означает, что вы должны инициализировать его следующим образом:

public class Proj3{

    public static String [][] Item = {
              {"BH," , "Backhoe," , "200.00"},
              {"ER," , "Electric Rake," , "10.00"},
              {"EL," , "Electric Lawnmower," , "15.00"},
              {"TR," , "Trencher" , "35.00"},
              {"MU," , "Mulcher," , "20.00"},
              {"TS," , "Tree Sprayer," , "22.00"},
              {"CP," , "Cider Press," , "30.00"},
              {"PR," , "Pruner," , "12.00"},
              {"GE," , "Gas Edger," , "20.00"},
              {"RO," , "Roller," , "8.00"}
         };

public static void main(String [] args){
     ...
}

Если вы хотите использовать инициализатор массива, вы не можете разделить объявление и присваивание.

6 голосов
/ 15 июня 2011

У вас есть два варианта: В декларации

private static String[][] item = {...};

OR

В другом месте, используя ключевое слово new private static String[][] item = new String[][]{...}

Кроме того, вам нужно изменить public proj на public class

0 голосов
/ 17 февраля 2015

Вы можете объявить многомерный массив глобально следующим образом:

String [][] 2DArray;

И затем инициализировать его в основном методе следующим образом:

 2DArray = new String[][] {
                {"array_element_0", "array_element_1"},
                {"array_element_2", "array_element_3"},
                ...
            };
0 голосов
/ 12 июня 2014

Если ваша цель: 1. объявить это где-нибудь;2. инициализировать его где-нибудь еще;3. все еще хотите использовать формат {...}.Это будет работать:

public proj 3 {

    static string [][]Item;

    public static void main(String [] args) {

        string[][] _Item = {
             {"BH," , "Backhoe," , "200.00"},
             {"ER," , "Electric Rake," , "10.00"},
             {"EL," , "Electric Lawnmower," , "15.00"},
             {"TR," , "Trencher" , "35.00"},
             {"MU," , "Mulcher," , "20.00"},
             {"TS," , "Tree Sprayer," , "22.00"},
             {"CP," , "Cider Press," , "30.00"},
             {"PR," , "Pruner," , "12.00"},
             {"GE," , "Gas Edger," , "20.00"},
             {"RO," , "Roller," , "8.00"}
        };
        Item = _Item;
0 голосов
/ 14 июня 2011

Я не уверен на 100%, правильно ли я понял, что вы имеете в виду, но вы можете сослаться на статических учеников, полностью квалифицировав их.

public class MyClass {
  // static class member
  public static String myStaticArray;

  // non-static class method
  public void myMethod() {
    MyClass.myStaticArray = {...}; // do stuff
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...