У меня просто чуть голова не взорвалась от этой задачи просто за что ... Вообщем хотелось бы спросить, почему не приняло ответ который написал я изначально... Я понимаю конечно что он написан не в одну строчку но всё же... Вообщем в классе Table я создал:
public Dishes getDishes() {return new Dishes(number);}
Затем в классе Waiter, после 15 строчки написал:
Dishes dishes = table.getDishes();
manager.getDishesQueue().add(dishes);
Программа вроде бы работает правильно - а валидатор не принимает ... вот полностью классы - Waiter:
public class Waiter implements Runnable {
    public boolean continueWorking = true;

    @Override
    public void run() {
        Manager manager = Manager.getInstance();

        while (continueWorking || !manager.getDishesQueue().isEmpty()) {
            if (!manager.getDishesQueue().isEmpty()) {       //относим готовый заказ
                Dishes dishes = manager.getDishesQueue().poll();
                System.out.println("Официант отнес заказ для стола №" + dishes.getTableNumber());
            } else {                                         //берем новый заказ
                Table table = manager.getNextTable();
                Order order = table.getOrder();

                Dishes dishes = table.getDishes();
                manager.getDishesQueue().add(dishes);

                System.out.println("Получен заказ от стола №" + order.getTableNumber());
                manager.getOrderQueue().add(order);
            }
            try {
                Thread.sleep(100);  //walking to the next table
            } catch (InterruptedException e) {
            }
        }
    }
}
Table:
public class Table {
    private static byte tableNumber;
    private byte number = ++tableNumber;

    public Order getOrder () {
        return new Order(number);
    }

    public Dishes getDishes() {return new Dishes(number);}
}