Tipo long primitive e Tipo Long Object

Olá!

Estou com a seguinte dúvida do tipo primitivo long e o Objeto Long.
Durante a leitura do livro OCAOCP Java SE 7 Programmer I - II Study Guide (Exams 1Z0-803 - 1Z0-804) me deparei com seguinte caso.

A declaração para o tipo primitive long está correta:

A) long valor = 15_2_10
B) long valor = 15,33,90

Eu errei a questão respondendo que as duas declarações estão incorretas.
A reposta correta é a letra A, mas não entendi porque.

Observei que para o tipo primitive long, esse valor não é aceitavél, mas para o tipo objeto Long, o valor é válido.

Se alguém puder me tirar essa dúvida, não achei na internet detalhes desse problema e o livro não explica essa situação.

Obrigado!

Cara, curioso isso. Não conhecia, mas achei falando disso na documentação.

In Java SE 7 and later, any number of underscore characters
(_) can appear anywhere between digits in a numerical
literal. This feature enables you, for example, to separate groups
of digits in numeric literals, which can improve the readability of
your code.

Basicamente, permite incluir undescores entre os dígitos para facilitar a leitura do valor.

FONTE: Underscores in Numeric Literals

Interessante lucastody, eu também não sabia. Mas vou ler também a documentação;