Представьте себе:
void foo() {
// doesn't matter
}
System.out.println("" + foo()); // What should happen here?
Ответ: взорваться - и это то, что правильно делает javac.Метод foo
имеет "тип результата void" (none, nada, zilch).Объект не возвращен.Когда-либо.Даже не ноль.«Ничего» нет, и компилятор откажется пытаться использовать «ничто» как «что-то».
(метод с «типом результата void» отличается от метода, который может return null
- например, тип возвращаемого значения - Object - у такого метода все еще есть тип результата "не void".)
Счастливое кодирование.