Dúvida Inner Class

Bom Dia.

Estava estudando sobre inner class no livro da katy sierra e estou com uma dúvida.

Vejam o código:


public class ClasseExterna{
  
     class ClasseInterna{

     }

    public static void main(){
          ClasseExterna.ClasseInterna teste = new ClasseExterna().new ClasseInterna(); // linha 1
          ClasseInterna teste2 = new ClasseExterna().new ClasseInterna(); // linha 2

    }
   
}

Segundo o livro, a linha dois não compila.
Porém fiz o teste e funciona perfeito.

Alguma explicação?

alguma idéia?

Versão do livro em português ou ingles?

Creio que trata-se de um erro livro mesmo…

é, ta errado mesmo.

agora quer aprender um detalhe legal? declare a classe interna como privada e tente novamente…

Esse “.new” sempre me pareceu uma coisa tao alien ao Java que eu faco a maior questao possivel de passar longe de qualquer coisa que me incentive a usar isso (e, ainda bem, nao achei nenhuma que me obrigasse).

Tem alguma outra palavra-chave alem de ‘class’ e ‘new’ que pode vir depois de ‘.’, de acordo com a sintaxe?