, поэтому у меня есть таймер из java .util.timer, и внутри его метода запуска я создаю объект из другого класса и помещаю результат в массив stati c, как показано ниже:
public class Generator {
public Timer timer;
int seconds = 2;
final int maxCalls = 3;
int currNumCall = 0;
public static boolean running = false;
public Generator() {
this.timer = new Timer();
this.timer.schedule(new ReminderTask(), seconds * 1000);
}
class ReminderTask extends TimerTask {
@Override
public void run() {
if (currNumCall < maxCalls) {
System.out.println("picking up a new call");
running = true;
int i = ThreadLocalRandom.current().nextInt(0, 2);
Call call;
if (i > 0) {
call = new Call("high", LocalDateTime.now());
} else {
call = new Call("low", LocalDateTime.now());
}
calls.add(call);
currNumCall += 1;
timer.cancel();
timer = new Timer();
timer.schedule(new ReminderTask(), seconds * 1000);
} else {
timer.cancel();
running = false;
}
}
}
и в другом классе я инициирую объект из класса генератора, чтобы заполнить массив вызовов, теперь мне нужно выполнить некоторые операции с вызовами, поэтому я делаю что-то вроде этого ниже:
public class Fire_staton_problem {
public static ArrayList<Junior> juniors = new ArrayList<>();
public static ArrayList<Senior> seniors = new ArrayList<>();
public static ArrayList<Manager> managers = new ArrayList<>();
public static ArrayList<Director> directors = new ArrayList<>();
public static ArrayList<Call> calls = new ArrayList<>();
public Generator generator;
public Fire_staton_problem() {
generator = new Generator();
}
public static void main(String[] args) {
Fire_staton_problem f = new Fire_staton_problem();
while(f.generator.isRunning()) {
if (calls.size() > 0) {
System.out.println(calls);
}else {
System.out.println("empty :)");
}
}
}
}
к сожалению, это не работает ... что я мог сделать, чтобы иметь возможность постоянно обрабатывать результат таймера, я имею в виду, продолжаю проверять, существуют ли данные, а затем делать что-то, я не хочу просто повторять массив ... заранее спасибо и пожалуйста сообщить, если вопрос не совсем ясен.