По сути, мне нужно проанализировать XML-файл, поместить его в ArrayList объектов класса и передать его (а также сокет) в поток.Затем этот поток выполнит некоторую функциональность с заданным ArrayList и передаст результат обратно в сокет.Моя проблема в том, что я не могу передать проанализированные данные в виде ArrayList в поток.
Вот некоторый код:
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
/*xml parsing is done, result is saved in ArrayList<class> peds*/
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.err.println("Could not listen on port: 4444." + e);
System.exit(-1);
}
while (listening){
Socket s = serverSocket.accept();
Runnable proExec = new KKMultiServerThread( s, peds); **
Thread th = new Thread (proExec)
th.start(); }
serverSocket.close();
}
class KKMultiServerThread implements Runnable{
private Socket socket = null;
public final ArrayList<show> peds;
public KKMultiServerThread(Socket socket, ArrayList<show> peds) {
this.socket = socket;
this.peds = peds;
}
** Проблема возникает в этой строке.Говорит: на нестатическую переменную нельзя ссылаться из статического контекста.
перепробовал все возможные комбинации (например, поместил класс runnable в другой файл и вызвал функцию для возврата структуры данных. Среда IDE не позволяет мне делать это.)
Похоже, что единственное возможное оставшееся решение этой проблемы - это анализ файла xml и сохранение его в структуре данных ДЛЯ КАЖДОЙ РЕЗЬБЫ ... это кажется слишком дорогостоящим, чтобы быть эффективным.
пожалуйста, помогите!