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