Решил, валик принял. Но мне кажется что не совсем правильно. Компилятор даёт ошибку
Веедите следующие блюда FISH, STEAK, SOUP, JUICE, WATER
FISH
Блюдо принято
SOUP
Блюдо принято
exit
You order: [FISH, SOUP] of Tablet{number=1}, cooking time 40min was cooked by was cooked by Janis
Start cooking - You order: [FISH, SOUP] of Tablet{number=1}, cooking time 40minwas cooked by Janis
You order: [FISH, SOUP] of Tablet{number=1}, cooking time 40min
пятое видео is displaying... 700, 1666
четвёртое видео is displaying... 500, 1666
третье видео is displaying... 500, 1666
Third Video is displaying... 200, 333
второе видео is displaying... 70, 166
First Video is displaying... 50, 277
шестое видео is displaying... 10, 166
03-Feb-2021 - 20.30
Total - 20.30
03-Feb-2021
Janis - 40 min
Exception in thread "Thread-0" java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:373)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at com.javarush.task.task27.task2712.RandomOrderGeneratorTask.run(RandomOrderGeneratorTask.java:11)
at java.base/java.lang.Thread.run(Thread.java:832)
First Video - 99
Second Video - 10
Third Video - 1
второе видео - 9
первое видео - 10
шестое видео - 9
пятое видео
третье видео
четвёртое видео
Process finished with exit code 0
Что делать ? Идти дальше на следующий уровень ?
я не понял как сделать рефакторинг Ctrl+Alt+M и создал просто объект TestOrder
public void createTestOrder() {
Order order = null;
try {
order = new TestOrder(this);
} catch (IOException e) {
logger.log(Level.INFO, "Console is unavailable.");
}
}
VitalyK #1116124
39 уровень
Подскажите пожалуйста.
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Безумный учёный Expert
3 февраля 2021, 12:23
Покажите код класса RandomOrderGeneratorTask. Судя по стек-трейсу исключения проблема находится там.
Предварительно предположу, что при создании объекта RandomOrderGeneratorTask в main() в конструктор передаётся пустой список планшетов. Этот список должен содержать хотя бы один планшет.
0
VitalyK #1116124
3 февраля 2021, 12:35
Думаю да, а как его вставить , в ручную ?
public class RandomOrderGeneratorTask implements Runnable {
private ArrayList<Tablet> array = new ArrayList<>();
private int time;
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Tablet tablet = array.get((int)(Math.random() * array.size()));
tablet.createTestOrder();
try {
Thread.sleep (time);
} catch (InterruptedException e) {
return;
}
}
}
public RandomOrderGeneratorTask (ArrayList<Tablet> array, int time) {
this.array = array;
this.time = time;
}
}
0
Павел Безумный учёный Expert
3 февраля 2021, 12:46
В методе main() добавьте в список пару планшетов перед тем, как создать поток исполнения, например, так:
Ошибка происходит потому, что из пустого списка array нельзя достать случайный планшет. 0
VitalyK #1116124
3 февраля 2021, 12:50
да ошибка пропала. Идти не следующий уровень ?
0
Павел Безумный учёный Expert
3 февраля 2021, 12:51
Думаю, да 🙂
0
VitalyK #1116124
3 февраля 2021, 12:52
Спасибо. Я уже опасаюсь ..... :)
0