private void createNewApple() {
        int x = getRandomNumber(WIDTH);
        int y = getRandomNumber(HEIGHT);
        apple = new Apple(x, y);
        while(snake.checkCollision(apple)) {
            createNewApple();
        }
    }
Вроде бы должен такой код с рекурсией работать.. Но не принимает решение. В результате через валидатор продавил такой вариант
while(snake.checkCollision(apple)) {
            apple = new Apple(getRandomNumber(WIDTH), getRandomNumber(HEIGHT));
        }