2

我的问题是我正在创建一个从文件中读取数据的类,并且数据是

生产,3554,西兰花,5.99,1

生产,3554,西兰花,5.99,1

生产,3555,胡萝卜,2.23,0.25

生产,3555,胡萝卜,2.23,0.25

生产,3555,胡萝卜,2.23,0.25

-------------------------------------------------- --// 文件结束

Product[] p= new Product[num];
int k=0;
try
{
   File f = new File("somefile.txt");
   Scanner s= new Scanner(f);
   while(s.hasNextLine())
   {
      String txt = s.nextLine();
      String[] field = txt.split(",");
      p[k] = new Product();//name,code,veg,price,unit are the variable and defined in theparent class named Product and toString method also

      p[k].name=field[0];
      p[k].code=field[1];
      p[k].veg=field[2];
      p[k].price=field[3];
      p[k].unit=field[4];
      k++;
   }

现在我想创建一个方法

  public static Product delete(int pos)
  {
      return p[pos]  // this will represent the toString representation of particular inde

  }

我正在尝试这段代码,但这给了我一个未定义 p[pos] 的异常

是否有任何其他出路或方法可以使此方法以以下形式返回

目的

4

3 回答 3

1

您可能有范围界定问题。我猜您的 p Product 数组是在方法或构造函数内声明的,如果是这样,则仅在该方法或构造函数内可见。如果要在多个方法中使用 p 数组,则应在类中声明它,而不是在方法或构造函数中。

于 2013-07-16T23:58:56.510 回答
0

您的 p 声明在静态命名空间中不可见。要么将其移入静态命名空间,要么将函数更改为非静态的。

于 2013-07-17T00:00:15.287 回答
0

你的问题是,deletestatic不是p。由于静态和非静态是分开的且不可互换的,因此该delete方法无法识别它。

于 2013-07-17T00:01:54.983 回答