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

あなたの問題は、それdeleteはあるstaticpそうではないということです。静的と非静的は別個のものであり、互換性がないため、deleteメソッドはそれを認識しません。

于 2013-07-17T00:01:54.983 に答える