我的问题是我正在创建一个从文件中读取数据的类,而数据是
产,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]未定义
还有其他出路或方法让这个方法以
的形式返回对象
答案 0 :(得分:1)
您可能会遇到范围问题。我猜你的p Product数组是在方法或构造函数中声明的,如果是,只在该方法或构造函数中可见。如果要在多个方法中使用p数组,则应在类中声明,而不是在方法或构造函数中声明。
答案 1 :(得分:0)
您的p声明在静态命名空间中不可见。将其移动到静态命名空间,或将函数更改为非静态。
答案 2 :(得分:0)
您的问题是delete
为static
,但p
不是。由于静态和非静态是分开的且不可互换,因此delete
方法无法识别它。