Двоичное имя для примитивного типа в ITypeBinding

В org.eclipse.jdt.core.dom, в интерфейсе ITypeBinding, есть getBinaryName() и getName(). Объяснение в getName() очень подробно для каждого типа. Однако это не совсем ясно в джавадоке. Хотя я могу найти подробное объяснение двоичного имени для каждого типа в спецификации java-языка 3-го издания, раздел 13.1, я не могу найти двоичное имя для примитивного типа.

Что такое двоичное имя для примитивного типа? и любой источник, который я могу проверить?

1 ответ

Из The Java® Language Specification - Java SE 7 Edition

http://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.1

13,1. Форма двоичного кода

Программы должны быть скомпилированы либо в формате файла классов, заданном Спецификацией виртуальной машины Java, Java SE 7 Edition, либо в представлении, которое может быть отображено в этот формат загрузчиком классов, написанным на языке программирования Java.

Кроме того, полученный файл класса должен иметь определенные свойства. Ряд этих свойств специально выбран для поддержки преобразований исходного кода, которые сохраняют двоичную совместимость. Требуемые свойства:

Класс или интерфейс должен быть назван его двоичным именем, которое должно удовлетворять следующим ограничениям:

<ul> <li> Бинарное имя типа верхнего уровня (§7.6) является его каноническим именем (§6.7).</li> <li> Двоичное имя типа члена (§8.5, п. 9.5) состоит из двоичного имени его сразу включающего типа, за которым следует $, за которым следует простое имя члена.</li> <li> Двоичное имя локального класса (§14.3) состоит из двоичного имени его сразу включающего типа, за которым следует $, за которым следует непустая последовательность цифр, а затем простое имя локального класса.</li> <li> Бинарное имя анонимного класса (§15.9.5) состоит из двоичного имени его непосредственного содержимого, за которым следует $, за которым следует непустая последовательность цифр.</li> <li> Двоичное имя переменной типа, объявленной общим классом или интерфейсом (§8.1.2, §9.1.2), является двоичным именем его сразу включающего типа, за которым следует $, за которым следует простое имя переменной типа.</li> <li> Бинарное имя переменной типа, объявленное общим методом (§8.4.4), является двоичным именем типа, объявляющего метод, за которым следует $, за которым следует дескриптор метода, как определено в Спецификации виртуальной машины Java, Java SE 7 Edition, за которым следует $, за которым следует простое имя переменной типа.</li> <li> Двоичное имя переменной типа, объявленной общим конструктором (§8.8.4), является двоичным именем типа объявления конструктора, за которым следует $, за которым следует дескриптор конструктора, как определено в Спецификации виртуальной машины Java, Java SE 7 Edition, за которым следует $, за которым следует простое имя переменной типа.</li> </ul>

~

binary name - это имя класса вашего объекта. Так, например, двоичное имя для Integer является Integer. Для MyCustomClass - MyCustomClass и т.д.

licensed under cc by-sa 3.0 with attribution.