¿Puede Java 10 inferencia de tipo para variables locales inferir vacío?

Con Java 10, podemos usar la inferencia de tipos.

String s1 = "hello"; // before Java 10
var s2 = "hello"; // now

Sin embargo, hay una cosa que no podíamos hacer antes: tener variables de tipovacío.

Entonces, en versiones anteriores simplemente no podíamos definir el tipo de variablevoid. Pero ahora podemos asignar el resultado del retorno del métodovoid a la variable:

void emptyMethod() { }
...

void v1 = emptyMethod(); // won't compile
var v2 = emptyMethod(); // no problem at all

La pregunta es: ¿por qué incluso compila, para qué sirve? ¿Tienes algún caso de uso para esta cosa extraña?

Variable de tipovoid no tiene métodos, ni siquiera se puede usar como parámetro de un método.

Respuestas a la pregunta(1)

Su respuesta a la pregunta