У меня есть поток Java, который выполняет алгоритм поиска пути в константе while.Затем, каждый раз, я хочу получить наиболее обновленный путь из потока.Тем не менее, я не уверен, как это сделать, и думаю, что я могу делать это неправильно.Мой поток состоит из следующего кода:
public class BotThread extends Thread {
Bot bot;
AStar pathFinder;
Player targetPlayer;
public List<boolean[]> plan;
public BotThread(Bot bot) {
this.bot = bot;
this.plan = new ArrayList<>();
pathFinder = new AStar(bot, bot.getLevelHandler());
}
public void run() {
while (true) {
System.out.println("THREAD RUNNING");
targetPlayer = bot.targetPlayer;
plan = pathFinder.optimise(targetPlayer);
}
}
public boolean[] getNextAction() {
return plan.remove(0);
}
}
Затем я создаю объект BotThread и вызываю start ().Затем, когда я вызываю getNextAction () в потоке, я получаю нулевой указатель.Это потому, что я не могу вызвать другой метод в потоке, пока он находится в основном цикле?Как мне сделать это правильно?