Почему мы не можем назначить две выводимые переменные как анонимный класс друг другу? [дубликат]
На этот вопрос уже есть ответ здесь:
Java 10  позволяет сделать anonymous class с var как: 
var a1 = new Object(){};
var a2 = new Object(){};
Но это назначение вызовет ошибку:
a1 = a2;
jshell> a1 = a2; | Error: | incompatible types: $1 cannot be converted to $1 | a1 = a2; | ^^
На основе журнала ошибок, почему Ява 10 назначить два предполагаемых varкак anonymous class друг с другом, но он может сделать то же для других типов, таких как Long, String, и т. д.?