Size: a a a

2020 October 23

B

Bromles in learn.java
Как эт работает тогда? Рефлекшн не рефлекшн, привейт не привейт?
источник

MD

Max Demydenko in learn.java
Ну если полезешь с рефлексией туда куда не надо, то выпадет SecurityException
источник

MD

Max Demydenko in learn.java
У нас на игровом сервере с модами такая штука юзалась что бы ограничивать доступ к секретным данным
источник

B

Bromles in learn.java
А "куда не надо" - это куда?
источник

MD

Max Demydenko in learn.java
Max Demydenko
У нас на игровом сервере с модами такая штука юзалась что бы ограничивать доступ к секретным данным
.
источник

MD

Max Demydenko in learn.java
Под модами я имею ввиду то что прилетало с CI и подгружалось через classloaderы
источник

B

Bromles in learn.java
Просто интересно вот что

Если можно пролезть везде, то смысл в инкапсуляции? Все равно смогут везде пролезть и поднасрать

Если можно защитить часть кода от пролезания, то смысл в рефлекшене? Все равно нужная часть кода может быть закрыта
источник

MD

Max Demydenko in learn.java
Ну инкапсуляция не совсем для этого нужна
источник

MD

Max Demydenko in learn.java
Она больше для того что бы разработчик либы мог выпилить поле то, которое оно инкаспулирует и не прибавить боли всем тем кто юзает либу
источник

MD

Max Demydenko in learn.java
Вообщем это просто способ предоставления более гибкого API
источник

MD

Max Demydenko in learn.java
А если туда кто-то залез через рефлексию, то это уже их проблемы если что-то сломается
источник

B

Bromles in learn.java
а сокрытие данных? Т.е. чтобы юзверь не мог сделать с данными то, что не задумано разработчиком?
источник

MD

Max Demydenko in learn.java
Ну если надо что бы вообще не было доступа то есть SecurityManager, но просто жизнь такая штука что часто не предусмотреть все варианты использования.
источник

MD

Max Demydenko in learn.java
Bromles
а сокрытие данных? Т.е. чтобы юзверь не мог сделать с данными то, что не задумано разработчиком?
В с++ вообще можно просто пробежаться по куче и вытащить все что нужно, если знать во что оно скомпилируется примерно. В жабе в этом плане все круто.
источник

V

Vlad in learn.java
Bromles
Просто интересно вот что

Если можно пролезть везде, то смысл в инкапсуляции? Все равно смогут везде пролезть и поднасрать

Если можно защитить часть кода от пролезания, то смысл в рефлекшене? Все равно нужная часть кода может быть закрыта
Рефлекшн в первую очередь не для того, чтобы залезть и подправить прайват поле, а для либо и фреймворков  в основном. Создавать динамически объекты, сетить поля. Тот же хибер, тот же спринг их используют вовсю
источник

B

Bromles in learn.java
я кстати уже одну проблему стримов нашел. Не умеют в примитивные типы
источник

V

Vlad in learn.java
Bromles
я кстати уже одну проблему стримов нашел. Не умеют в примитивные типы
Умеют, там есть отдельные стримы и боксинг
источник

MD

Max Demydenko in learn.java
Bromles
я кстати уже одну проблему стримов нашел. Не умеют в примитивные типы
это проблема жабы да
источник

MD

Max Demydenko in learn.java
но есть автобоксинг
источник

MD

Max Demydenko in learn.java
к жабе 20 может сделают примитивные классы, обещают нормальный буст перфоманса
источник