Он действителен в том смысле, что он компилируется и запускается, но концептуально не совсем корректен.
Вы создаете новый объект типа Main
только для немедленной его отмены. Его конструктор используется не как истинный конструктор (потому что он ничего не инициализирует, и объект без сохранения состояния все равно будет отброшен), а скорее как просто другой метод.
Итак, почему бы не использовать другой метод?
public class Main {
public static void main(String[] args) {
doStuff();
}
public static void doStuff() {
System.out.println("hello world");
}
}
doStuff
действительно что-то добавляет сюда? Не особенно. Это дает нам возможность дать значимый идентификатор методу, где ранее мы были вынуждены использовать имя main
. Может быть, это ценно, а может, и нет.