Size: a a a

2020 July 06

AE

Alexandr Emelyanov in pro.jvm
かたかわ
Может кто сказать, каким образом внешний класс может достучаться до внутренней приватной переменной внутреннего статического класса?
https://paste.ofcode.org/PP2nZ6FDffG9jZLBpwUSJ6
Со статическим классом как с любым внешним
источник

かたかわ in pro.jvm
Alexandr Emelyanov
Со статическим классом как с любым внешним
Каким образом мы можем достучаться до приватной переменной другого класса? 😐
источник

かたかわ in pro.jvm
Я понял, что оно может достучаться
источник

かたかわ in pro.jvm
Я не понял, почему оно может достучаться
источник

AE

Alexandr Emelyanov in pro.jvm
Через рефлексию, не помню как там делается если честно
источник

かたかわ in pro.jvm
Хммммм
источник

SS

Shamil Sabirov in pro.jvm
inner class
источник

AE

Alexandr Emelyanov in pro.jvm
Shamil Sabirov
inner class
Статический уже не совсем inner
источник

かたかわ in pro.jvm
Alexandr Emelyanov
Через рефлексию, не помню как там делается если честно
Смотрю JVM инструкции, когда я меняю значение переменной, там просто putstatic вызывается
источник

かたかわ in pro.jvm
Но меня не устраивает этот ответ 😐
источник

E

Evgeniy ♎️ in pro.jvm
Alexandr Emelyanov
Статический уже не совсем inner
ога..у него написано не inner class, а static inner class)
источник

かたかわ in pro.jvm
Evgeniy ♎️
ога..у него написано не inner class, а static inner class)
Да-да, я опечатался
источник

かたかわ in pro.jvm
static
источник

かたかわ in pro.jvm
не просто inner
источник

VP

Vladimir Petrakovich in pro.jvm
かたかわ
Может кто сказать, каким образом внешний класс может достучаться до внутренней приватной переменной внутреннего статического класса?
https://paste.ofcode.org/PP2nZ6FDffG9jZLBpwUSJ6
Можете почитать https://openjdk.java.net/jeps/181
источник

かたかわ in pro.jvm
The inner class is (for purposes of access control) considered to be part of the containing class. This means full access to all privates.

The way this is implemented is using synthetic package-protected methods: The inner class will be compiled to a separate class in the same package (ABC$XYZ). The JVM does not support this level of isolation directly, so that at the bytecode-level ABC$XYZ will have package-protected methods that the outer class uses to get to the private methods/fields.
источник

かたかわ in pro.jvm
Ладно, всем спасибо
источник

かたかわ in pro.jvm
Спасибо
источник

AE

Alexandr Emelyanov in pro.jvm
Evgeniy ♎️
ога..у него написано не inner class, а static inner class)
Это к тому, что легального доступа к приватным прям не будет
источник

AK

Alexey Kuzin in pro.jvm
Как же бомбит от кода спрингдаты для монги
Какой же это нечитаемый кирпич
источник