数组常量只能在初始化器错误中使用

问题描述

| 考虑:
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,{\"RO,\"Roller,\"8.00\"},
我该如何做才能从其他方法调用数组?     

解决方法

        这意味着您必须像这样初始化它:
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,{\"RO,\"Roller,\"8.00\"}
         };

public static void main(String [] args){
     ...
}
如果要使用数组初始化器,则不能拆分声明和赋值。     ,        您有两种选择: 在声明中
private static String[][] item = {...};
要么 在其他地方使用
new
关键字
private static String[][] item = new String[][]{...}
另外,您需要将
public proj
更改为
public class
    ,        我不确定100%是否正确理解了您的意思,但是您可以通过完全限定它来引用静态类成员。
public class MyClass {
  // static class member
  public static String myStaticArray;

  // non-static class method
  public void myMethod() {
    MyClass.myStaticArray = {...}; // do stuff
  }
}
    ,        您可以像这样全局地声明多维数组:
String [][] 2DArray;
然后在main方法中进行如下初始化:
 2DArray = new String[][] {
                {\"array_element_0\",\"array_element_1\"},{\"array_element_2\",\"array_element_3\"},...
            };
    ,        如果您的目标是:1.在某处声明它; 2.在其他地方初始化它; 3.仍要使用{...}格式。 这将起作用:
public proj 3 {

    static string [][]Item;

    public static void main(String [] args) {

        string[][] _Item = {
             {\"BH,\"8.00\"}
        };
        Item = _Item;