
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.07.2014, 12:15
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
Всем привет. Есть 2 класса: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. и второй: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Пытаюсь получить все поля одного и другой класса, при этом в А хочу поменять значение приватного поля х Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Ошибка: Код: java 1. В строке: Код: java 1. первым параметром метода f.setInt должен быть класс, в котором находится данное поле, но у меня почему-то не получается, что я делаю не так? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:19
|
|||
|---|---|---|---|
|
|||
Java Reflection |
|||
|
#18+
JulTпервым параметром метода f.setInt должен быть класс, в котором находится данное поле Да, с фига ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:19
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
Дык оно ведь приватное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:21
|
|||
|---|---|---|---|
|
|||
Java Reflection |
|||
|
#18+
maytonДык оно ведь приватное. f.setAccessible(true); на месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:35
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
BlazkowiczJulTпервым параметром метода f.setInt должен быть класс, в котором находится данное поле Да, с фига ли? прочитала, но никак не могу понять что туда вставить в качестве первого параметра когда делаю так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. все работает на ура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:42
|
|||
|---|---|---|---|
|
|||
Java Reflection |
|||
|
#18+
JulTвсе работает на ура Это вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:46
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
BlazkowiczJulTвсе работает на ура Это вопрос? вопрос: что вставить в f.setInt(startClass, 9); вместо startClass? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 12:48
|
|||
|---|---|---|---|
|
|||
Java Reflection |
|||
|
#18+
JulT Код: java 1. 2. все работает на ура JulTвопрос: что вставить в f.setInt(startClass, 9); вместо startClass? JulT, сосредоточтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 14:01
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
BlazkowiczJulT Код: java 1. 2. все работает на ура JulTвопрос: что вставить в f.setInt(startClass, 9); вместо startClass? JulT, сосредоточтесь. Не могу врубиться. В доке пишут: public void setInt(Object obj, int i) obj - the object whose field should be modified, т.е., что obj это объект, поле которого должно быть изменено. Т.е. startClass (искомый объект) должен быть типа А, сейчас я так понимаю он у меня типа Class, т.е. его нужно преобразовать в А, правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 14:06
|
|||
|---|---|---|---|
|
|||
Java Reflection |
|||
|
#18+
JulT, У вас есть поле. Оно не статическое. Оно пренадлежит какому-то экземпляру aka "объекту". У разных экземпляров разное значение поля. Поэтому чтобы записать или прочитать значение не статического поля, надо иметь ссылку на объект\экземпляр в поле которого вы хотите что-то записать. Почемы вы выдумали что там должен быть класс и усиленно держитель за эту мысль, мне не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.07.2014, 11:11
|
|||
|---|---|---|---|
Java Reflection |
|||
|
#18+
BlazkowiczJulT, У вас есть поле. Оно не статическое. Оно пренадлежит какому-то экземпляру aka "объекту". У разных экземпляров разное значение поля. Поэтому чтобы записать или прочитать значение не статического поля, надо иметь ссылку на объект\экземпляр в поле которого вы хотите что-то записать. Почемы вы выдумали что там должен быть класс и усиленно держитель за эту мысль, мне не понятно. Большое спасибо, разобралась. Class c=obj.getClass(); в "c" получаем не сам объект, а его структуру, так сказать, мета-описание. В общем не "с" нужно было таскать по рекурсии, а делать так Object real=c.newInstance(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2126959]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 471ms |

| 0 / 0 |
