|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Привет! Возник небольшой вопрос по доступу к приватным полям одного класса из другого класса. По условию задачи нужно в классе B получить доступ к полю в классе A. Поле в классе A имеет модификатор доступа private. Вопрос принципиальный , нужно именно пробить дыру только из класса B, без дополнительных методов обработчиков в классе A. (типа геттеров ,сеттеров,.. прочих методов) Есть класс A: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Как видно из него у нас есть в поле приватная переменная типа private static ArrayList<String> animals; И есть класс B, в котором я хочу получить доступ к данному ArrayList в классе А. Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Предполагаем по условию задачи, что на момент вызова метода getAnimals() из класса B, класс А уже инициализирован и список наполнен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 17:26 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#get-java.lang.Object-If the underlying field is a static field, the obj argument is ignored; it may be null. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 18:57 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
SpringMan, Та не, все и со статик работает. Вы не ту страницу хелпа посмотрели:) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 20:07 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов, А где там написано, что со статик не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 00:01 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
offЯ фигею с этих преподов. Заставляет студентов свой мокито делать. Зря мы закрыли топик про смерть ООП. Вот тут она - смертушка. Воооот тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 01:11 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton offЯ фигею с этих преподов. Заставляет студентов свой мокито делать. Зря мы закрыли топик про смерть ООП. Вот тут она - смертушка. Воооот тут. Я периодически читаю топик здесь этот последний, где ООП умирает. Больше 40 страниц уже накатали. Куда умирает то, стопэ, я только ворвался в Java, больше года чуть, нельзя умирать ООП. Раньше писал в ФП стиле на другом языке, что вы там в ФП нашли уникального то?) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 02:29 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов Если вас интересует ООП, то зачем в статическое поле добавляется кошка из конструктора экземпляра? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 07:43 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 07:43 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Сергей Лалов Если вас интересует ООП, то зачем в статическое поле добавляется кошка из конструктора экземпляра? Да кто их кошек поймёт, они всегда ведь сами по себе. По всей видимости первый класс просто был чтобы показать какое то статическое хранилище, в вакууме. Которое не зависит от количества инстансов) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 10:59 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов mayton offЯ фигею с этих преподов. Заставляет студентов свой мокито делать. Зря мы закрыли топик про смерть ООП. Вот тут она - смертушка. Воооот тут. Я периодически читаю топик здесь этот последний, где ООП умирает. Больше 40 страниц уже накатали. Куда умирает то, стопэ, я только ворвался в Java, больше года чуть, нельзя умирать ООП. Раньше писал в ФП стиле на другом языке, что вы там в ФП нашли уникального то?) Процедурный стиль != ФП, не надо путать. Функциональное программирование совсем о другом. И да, ООП умирает ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:00 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
забыл ник Процедурный стиль != ФП, не надо путать. Функциональное программирование совсем о другом. И да, ООП умирает Вы имеете в виду использование к примеру рекурсий, которые ближе всего находятся к математическому отображении вычислении к примеру какой либо функции, к примеру ченить такое f(x)=Ai+f(x). Думаю не путаю. Использую . Но в стеке повседневных задач проще реализовать выполнение функции в императивном стиле, где под капотом работают тот же самый набор процедур. Более читаемо и лучше редактировать. Это следующая стадия, когда люди поймут ,что и чистый ФП в общем то не нужен)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:20 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
забыл ник, Не умрёт. Как и Рсубд. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:25 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов PetroNotC Sharp Сергей Лалов Если вас интересует ООП, то зачем в статическое поле добавляется кошка из конструктора экземпляра? Да кто их кошек поймёт, они всегда ведь сами по себе. По всей видимости первый класс просто был чтобы показать какое то статическое хранилище, в вакууме. Которое не зависит от количества инстансов) Поэтому чё его обсуждать на не верных исходных посылах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:27 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Скорее всего - лаба по рефлексии. В обычной ООП разработке - если тебе нужен доступ к полям - то ты либо открываешь доступ модификаторами pub/protect/priv либо делаешь по дизайну соотв. геттеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:42 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton, Да. Поэтому слова ТС про ООП тут оффтоп. Лучше по теме пусть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:57 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp забыл ник, Не умрёт. Как и Рсубд. РСУБД не умрет, ну в ближайшей перспективе, хотя ниша уменьшится. А от ООП останется только название, по факту оно уже так и есть. Все эти SOLID, иммутабельность, anemic model - лишь попытки натянуть сову на глобус. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 11:59 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов забыл ник Процедурный стиль != ФП, не надо путать. Функциональное программирование совсем о другом. И да, ООП умирает Вы имеете в виду использование к примеру рекурсий, которые ближе всего находятся к математическому отображении вычислении к примеру какой либо функции, к примеру ченить такое f(x)=Ai+f(x). Думаю не путаю. Использую . Но в стеке повседневных задач проще реализовать выполнение функции в императивном стиле, где под капотом работают тот же самый набор процедур. Более читаемо и лучше редактировать. Это следующая стадия, когда люди поймут ,что и чистый ФП в общем то не нужен)) Тот случай когда много умных несвязанных по смыслу слов не делают фразу умнее в общем. ФП в первую очередь это перевод side-effectоф в управляемое русло, что приводит к лучшей композиции функций(когда то что делает функция определяется ее сигнатурой и если типы входа-выхода свопадают можно шлубоко не вникать в суть) и лучший local reasoning(когда для понимания куска системы достаточно знать входящие параметры и не нужно знать текущее состояние системы), эти два качества существенно уменьшают mental burden для девелопера, так что лучшая читаемость и редактируемость это прямо оксюморон. Не ну если речь о питоне или яваскрипте - то мб конечно... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:05 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
забыл ник PetroNotC Sharp забыл ник, Не умрёт. Как и Рсубд. РСУБД не умрет, ну в ближайшей перспективе, хотя ниша уменьшится. А от ООП останется только название, по факту оно уже так и есть. Все эти SOLID, иммутабельность, anemic model - лишь попытки натянуть сову на глобус. СтрашнО не само по себе ООП. Оно - суть воспитание правильного отношения к доменной модели. А страшны его реализации в языках. Например чего стоит только поведение дефолтного конструктора в Java (его отсутсвия вернее). Или чего стоит мультипарадигменность и ООП в С++. Вроде ООП есть - но лучшеб его и не было. Хочется виртуальных функций? Ну - сделалибы как в JScript - зато сняли бы тяжелое бремя ООП. Был-бы прекрасный необременённый ритуалами язык. А так - в технических спорах говорят что С++ - это ООП, но когда надо то можно и его об колено сломать. Тоже самое с темой топика. Постулировано великими что приватное поле - недоступно но хочется - то и рефлексия может его сломать. Зачем тогда оно вообще? Ребята зачем вам в ВАШЕМ коде ключевое словов private? Вот какую оно пользу ВАМ принесло? В новых языках, таких как Rust, GoLang, ООП - рудиментарно. Тоесть оно конечно есть - но уже не выглядит чем-то обязательным и давлеющим. В одном из них даже keyword "class" отсуствует. В другом - не помню щас... вроде тоже нету. Создатели Go - вообще следовали идее что если фича не очень нужна то ее вообще не стоит включать в язык. Тоесть следовали минимализму. Сделан упор - на решение конкретной девопсовской или микро-сервисной задачи. А не на следование высшим ритуалам ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:23 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton Скорее всего - лаба по рефлексии. В обычной ООП разработке - если тебе нужен доступ к полям - то ты либо открываешь доступ модификаторами pub/protect/priv либо делаешь по дизайну соотв. геттеры. Да, это задачка по рефлексии) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:29 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов mayton Скорее всего - лаба по рефлексии. В обычной ООП разработке - если тебе нужен доступ к полям - то ты либо открываешь доступ модификаторами pub/protect/priv либо делаешь по дизайну соотв. геттеры. Да, это задачка по рефлексии) Редко её юзают. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:33 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Ее в основном юзают фреймворки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:36 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Попалась мне где-то такая история ... Сдаёт новобранец упражнение по стрельбе короткими очередями. Новобранец, то ли разрядник, то ли мастер спорта по стрельбе, ставит автомат на одиночный огонь и классно поражает все мишени. Сержант кроет его матом: "Короткими очередями, ...", а новобранец, весь такой невозмутимый: "Зачем? Я и одиночными прекрасно попадаю". Самое смешное, что запостил это сообщение тот самый новобранец, который даже отслужив в армии и, вроде как, повзрослев - продолжал обижаться на "тупого сержанта". Есть у человека учебная задача. Решение должно продемонстрировать навык, который (не) получил программист, а не всё то, о чём тут "философируется". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 13:28 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton Скорее всего - лаба по рефлексии.... Лечение простуты через ж.... это теперь называется "лаба по рефлексии" ? Т.к. "setAccessible(true)" и "доступ к приватным полям" это проктология. При чем тут ООП совершенно не понятно. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 13:28 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton Скорее всего - лаба по рефлексии.... Лечение простуты через ж.... это теперь называется "лаба по рефлексии" ? Т.к. "setAccessible(true)" и "доступ к приватным полям" это проктология. При чем тут ООП совершенно не понятно. IMHO Не знаю, у меня тема топика вообще не касалась ООП, и более того задача уже решена в третьем письме Видимо народу нужна новая трибуна для обсуждения топика" ООП умирает". Ну послушать интересно, не возражаю) PS. Можно ещё подлить масла в огонь, и обсудить новую фишку объявления переменных через var: Код: java 1.
Java уже практически бейсиком стал)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 13:47 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Надо выпить за правильные методики обучения. Побольше рефлексии. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 13:51 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton Надо выпить за правильные методики обучения. Побольше рефлексии. И эмпатии) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 13:55 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Zzz79 Сергей Лалов пропущено... Я периодически читаю топик здесь этот последний, где ООП умирает. Больше 40 страниц уже накатали. Куда умирает то, стопэ, я только ворвался в Java, больше года чуть, нельзя умирать ООП. Раньше писал в ФП стиле на другом языке, что вы там в ФП нашли уникального то?) ООП не умрет пока есть спринг- ибо там все на интерфейсах ,а спринг это 99.9 % всех ентерпрайз проектов пс.джава активно разивается и те плюшки ,которые были в скала,котлине и прочих ЯП медленно,но уверенно перекачевывают в джаву поэтому ворвался ты в правильном направлении) Ну нормально, значит живем !) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 22:01 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Zzz79 забыл ник Процедурный стиль != ФП, не надо путать. Функциональное программирование совсем о другом. И да, ООП умирает сейчас посмеялось Integer.MAX_VALUE ентерпрайз погромистов Дело в том что ты не понимаешь что такое ООП Ну а чтобы найти ООП в спринге это вообще надо обладать даром проктолога-иллюзиониста. Задиристость это конечно хорошо, амебой быть скучно, но не надоело тебе раз за разом в говно окунаться то? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 22:07 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Zzz79, Интерфейсы это ООП? ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 23:14 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Zzz79, Интерфейсы это ООП? ))))) За что я люблю SQL.RU на протяжении уже 12 лет, так это за шоу паровозик, когда все участники шоу выстраиваются кругом друг за другом и начинают долбить друг друга по затылку, или еще куда)) Покажи пример классического ООП, самый лаконичный, чтобы мы все в этой ветке прослезились и сказали - во бл, так это же самое настоящее ООП, то самое , ОНО, ОГОГО!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 15:29 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов Покажи пример классического ООП, самый лаконичный, чтобы мы все в этой ветке прослезились и сказали - во бл, так это же самое настоящее ООП, то самое , ОНО, ОГОГО!!! https://ru.wikipedia.org/wiki/Smalltalk ? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 15:32 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Не, ну тут не докопаться, как бы не писал ,и что бы не писал, будет чистое ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 15:41 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов, В чем вопрос? У джунов спрашивают 3 принципа ООП. Забыл что ли? В rest блин их больше)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 15:56 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Сергей Лалов, В чем вопрос? У джунов спрашивают 3 принципа ООП. Забыл что ли? В rest блин их больше)))) Да ты стрелы на 4 парадигмы не кидай, мы их все знаем. Просто просим показать самый лаконичный пример на Java правильного и самого ООПэшного способа кода по твоей версии ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:03 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Сергей Лалов, По моей версии нету такого. Программирование это компромисс. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:28 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, согласен) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:31 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Мы тут недавно собаку от волка наследовали. Так и не дошли к консенсусу. Непростая это задача. Широкая... Мдя. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 17:39 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
mayton Мы тут недавно собаку от волка наследовали. Так и не дошли к консенсусу. Непростая это задача. Широкая... Мдя. На самом деле в рамках одной системы такой консенсус достижим. В чем феерически врет ООП так это в реюзе компонентов(блоков), которые можно взять и перенести в другой проект. Слеза наворачивается вспоминая сколько User, Account и Order было мною написано Так что даже если унаследовать собаку от волка, до когда ты запустишь свою систему в Тамбове, то тот волк точно будет тебе не товарищ. В целом же ООП - не основанный ни на каком математическим фундаменте дикий коктейль шаманских заклинаний, который передается от лида к джуну и у каждого тру девелопера свой рецепт ООП. Короче мусор ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 17:59 |
|
getDeclaredField и setAccessible(true)
|
|||
---|---|---|---|
#18+
Если верить википедии, волк понятие относительное ))). Если брать Canis lupus rufus то врят ли от него можно наследовать Canis lupus familiaris они друг другу тупо паралельны на одном уровне иерархии, а наследовать их нужно от Canis lupus IMHO. Если я правильно понимаю логику ООП. https://ru.wikipedia.org/wiki/Псовые ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 18:14 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120516]: |
0ms |
get settings: |
28ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
28ms |
get topic data: |
2ms |
get forum data: |
0ms |
get page messages: |
720ms |
get tp. blocked users: |
0ms |
others: | 7ms |
total: | 792ms |
0 / 0 |