2013-07-16 2 views
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 

    } 

я пытаюсь этот код, но это дает мне исключение, что р [поз] не определен

Есть ли какой-либо другой выход или метод для возвращения этого метода в виде

объект

+1

Пожалуйста, ознакомьтесь с инструкциями по редактированию в правом верхнем углу окна редактирования вопроса и переконфигурируйте свой код так, чтобы он был читабельным. Прямо сейчас читать почти невозможно. Изменить: неважно, как jh314 сделал это для вас. Пожалуйста, откройте свой первоначальный вопрос, чтобы посмотреть, что он сделал, чтобы ваш следующий вопрос не был настолько трудным для чтения. –

+0

Ну, это может быть несколько вещей, на которые указывают ответы. Что вы подразумеваете под 'p [pos]'? Что такое 'p'? – m0skit0

ответ

0

Ваша проблема заключается в том, что delete является static, но p нет. Поскольку статические и нестатические являются раздельными и не взаимозаменяемыми, метод delete не распознает его.

+0

Почему это вниз? Это может быть причиной. Вопрос непонятен. – m0skit0

+0

Сегодня просто не мой день. Я продолжаю публиковать то, что, по моему мнению, является ответом, и все его понижают. Сегодня я перешел от 9 человек к одному представителю и лично, я не думаю, что мои ответы ошибочны, просто неправильно. – llamositopia

+0

Не мое голосование, но сообщение об ошибке должно быть другим, если проблема связана с статическими или нестационарными. Текущее сообщение об ошибке, вероятно, связано с проблемой объема. –

1

Вероятно, у вас есть проблема. Я предполагаю, что ваш массив продуктов P объявлен внутри метода или конструктора, и если это так, он виден только внутри этого метода или конструктора. Если вы хотите использовать массив p более чем в одном методе, он должен быть объявлен в классе не в методе или конструкторе.

+0

Да, он объявлен внутри основного метода, и метод удаления объявлен вне основного метода –

+0

@SYEDSAADALI: тогда это ваша проблема. –

0

Ваше объявление p не отображается в статическом пространстве имен. Либо переместите его в статическое пространство имен, либо измените функцию, которая не статична.

Смежные вопросы