Лично я никогда не пытался вызвать метод моего класса с ключевым словом class
. Если мы говорим, что ваш класс называется Foo
, в вашем методе Main вы должны написать:
mzList = Foo.filreader("precursor",mzList);
В вашем первом главном примере это не имеет смысла:
List mzList = new LinkedList();
mzList = new ArrayList();
Это должен быть LinkedList () или ArrayList (), например:
List mzList = new LinkedList();
или List mzList = new ArrayList();
Далее вы передаете имя файла «предкурсор», но в первом примере вы используете «./precursors» (но я думаю, вы знаете об этом).
Наконец, вы присваиваете результат вашего метода переменной mzList
и передаете тот же экземпляр списка, что и параметр. Если вы передаете список в качестве параметра, вам не нужно возвращать его обратно, потому что это тот же список, который был создан ранее в вашем коде (читайте о ссылках). Вы можете использовать что-то вроде этого:
public static void filereader (String filename, LinkedList someList) {
FileInputStream input = new FileInputStream(filename);
DataInputStream in = new DataInputStream(input);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
if (line.equals("---")) {
/* Do Nothing... */
} else {
someList.add(line);
}
}
in.close();
return(someList);
}
и затем просто (обратите внимание, что назначения нет):
Foo.filreader("precursor",mzList);
Насколько я понимаю, вы не используете этот входной список для чтения данных из него. Таким образом, вы можете инициализировать свой список внутри метода и вернуть его, например, так:
public static LinkedList filereader (String filename) {
LinkedList someList = new LinkedList(); // notice list initialization
FileInputStream input = new FileInputStream(filename);
DataInputStream in = new DataInputStream(input);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
if (line.equals("---")) {
/* Do Nothing... */
} else {
someList.add(line);
}
}
in.close();
return(someList);
}
, а затем просто вызовите свой метод и присвойте свои результаты:
mzList = Foo.filreader("precursor");