Comments 16
Ссылка хранится в поле с именем this$0.
Очень интересно только пока не могу представить для чего можно использовать.
Это простые вложенные классы. Это просто синтаксическая конструкция. Назначение у нее простое — сокрытие и группировка функциональности. Почему Вы их считаете рекурсивными?
Пример рекурсивной вложенности должен быть таким:
Т.е. объект класса может содержать объекты своего же класса.
Пример рекурсивной вложенности должен быть таким:
public class A {
private A memberA;
private A memberB;
}
Т.е. объект класса может содержать объекты своего же класса.
+1. Статья ничего нового не дает. Все это описано в спецификации языка.
да большинство статей на хабре где то да описано, вы сами то помните сколько будет (int)(char)(byte)-1?
byte в Java 8 бит, знаковый -> -1 в byte будет иметь вид 11111111. Char имеет диапазон в 2 байта т.е. в 16 бит -> получим 0000000011111111, что явно не превышает 65535. учитывая это и то, что char единственный беззнаковый тип в Java то это число при расширении в int будет положительным. и как следствие будет равняться 65535.
а вы спросили потому, что сами не знали ответа?
а вы спросили потому, что сами не знали ответа?
я спросил не потому что не знаю, а потому что вы не читаете jls на ночь
«получим 255», «явно не превышает», невероятная логика. Ответ правильный но я на 110% уверен что просто проверили. Желаю приятного чтения в поисках ответа
«получим 255», «явно не превышает», невероятная логика. Ответ правильный но я на 110% уверен что просто проверили. Желаю приятного чтения в поисках ответа
Забавно, но я вопроса не задавал, чтобы ответ искать. и с каких, собственно, пор -1 равняется 255? видимо кому-то кроме jls еще и двоичную систему повторить стоит.
как раз рекурсивность вложенных классов — интересный момент. Рекурсивные они потому что вы можете повторять эту цепочку инстансов сколько угодно раз динамически. «Просто» вложенные классы, как все их знают — это один, максимум два уровня вложенности, как вы и говорите для группировки функциональности.
В этом и тема топика — если внутренний класс наследуется от внешнего, то можно проделать такой вот рекурсивный финт с вложенностью — динамически создать сколько угодно длинную цепочку вложенных классов.
Для меня например это фича, которую я случайно открыл. Поскольку этот «извесный» трюк нигде в интернетах не описывался, я грешно подумал что это будет кому то интересно.
В этом и тема топика — если внутренний класс наследуется от внешнего, то можно проделать такой вот рекурсивный финт с вложенностью — динамически создать сколько угодно длинную цепочку вложенных классов.
Для меня например это фича, которую я случайно открыл. Поскольку этот «извесный» трюк нигде в интернетах не описывался, я грешно подумал что это будет кому то интересно.
Вообще по своему опыту скажу что вложенные классы это зло, пользы от них никакой (при компиляции кстати вложенный класс скомпилируется отдельным файлом), они только вносят путанецу в исходники и усложняют рефакторинг (особенно когда начинают использовать во вложеннном классе приватные поля и функции родителя). Возьмите за правило «новый класс — новый файл» это сильно упрощает жизнь.
Sign up to leave a comment.
Рекурсивно вложенные классы