Вывести Right, но не Wrong

81. Вывести Right, но не Wrong

Условие задачи:
Дан класс с методами main() и main2().

Необходимо сделать так, чтобы при запуске программы выводилось:

Right

и не выводилось:

Wrong

Предложить несколько вариантов.

Код:

public class Interview {

    public static void main(String[] args) {
        System.out.println("Wrong");
    }

    public static void main2(String[] args) {
        System.out.println("Right");
    }
}

Спойлеры к решению

Подсказки
💡 JVM ищет точку входа с именем main.
💡 Метод main2() автоматически не вызывается.
💡 Можно вызвать main2() из main().
💡 Можно поменять имена методов или изменить содержимое main().

Решение

При обычном запуске Java выполняет метод:

public static void main(String[] args)

Поэтому main2() сам по себе вызван не будет.

Вариант 1 — вызвать main2() из main():

public static void main(String[] args) {
    main2(args);
}

public static void main2(String[] args) {
    System.out.println("Right");
}

Результат:

Right

Вариант 2 — поменять методы местами по имени:

public static void main2(String[] args) {
    System.out.println("Wrong");
}

public static void main(String[] args) {
    System.out.println("Right");
}

Вариант 3 — вывести нужное значение непосредственно из main():

public static void main(String[] args) {
    System.out.println("Right");
}

Ещё один вариант — запустить main2() из другого класса:

public class Starter {

    public static void main(String[] args) {
        Interview.main2(args);
    }
}

Главный момент: стандартной точкой входа является именно метод:

public static void main(String[] args)

Название main2 для JVM специального значения не имеет.