Зачем нужен знак $ в названии файлов Java?
разбирая чужой код иногда вижу файлы-классы в названии которых есть знак $, подскажите, для чего он нужен? Нигде не могу найти ответ.
Ответы (1 шт):
Символ $ используется при генерации исходного кода или, редко, для доступа к уже существующим именам в устаревших системах.
Из Java Language Specification on identifiers:
The $ character should be used only in mechanically generated source code or, rarely, to access pre-existing names on legacy systems.
Пример использования в генерации кода:
Символ $ используется как разделитель компилятора Java, чтобы указать, когда класс объявлен в другом классе. Для примера, класс Foo внутри Bar будет Bar$Foo.class когда скомпилируется, а анонимный класс внутри Bar будет Bar$1.class
Пример использования в именах:
String c$sh = "cash";
System.out.println(c$sh);