方法的返回类型是一个特定的对象?

时间:2013-07-16 23:53:47

标签: java

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

产,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]未定义

还有其他出路或方法让这个方法以

的形式返回

对象

3 个答案:

答案 0 :(得分:1)

您可能会遇到范围问题。我猜你的p Product数组是在方法或构造函数中声明的,如果是,只在该方法或构造函数中可见。如果要在多个方法中使用p数组,则应在类中声明,而不是在方法或构造函数中声明。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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