|
|
|
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:15 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
JulTпервым параметром метода f.setInt должен быть класс, в котором находится данное поле Да, с фига ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:19 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
Дык оно ведь приватное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:19 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
maytonДык оно ведь приватное. f.setAccessible(true); на месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:21 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTпервым параметром метода f.setInt должен быть класс, в котором находится данное поле Да, с фига ли? прочитала, но никак не могу понять что туда вставить в качестве первого параметра когда делаю так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. все работает на ура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:35 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
JulTвсе работает на ура Это вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:42 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTвсе работает на ура Это вопрос? вопрос: что вставить в f.setInt(startClass, 9); вместо startClass? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:46 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
JulT Код: java 1. 2. все работает на ура JulTвопрос: что вставить в f.setInt(startClass, 9); вместо startClass? JulT, сосредоточтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:48 |
|
||
|
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:01 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
JulT, У вас есть поле. Оно не статическое. Оно пренадлежит какому-то экземпляру aka "объекту". У разных экземпляров разное значение поля. Поэтому чтобы записать или прочитать значение не статического поля, надо иметь ссылку на объект\экземпляр в поле которого вы хотите что-то записать. Почемы вы выдумали что там должен быть класс и усиленно держитель за эту мысль, мне не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 14:06 |
|
||
|
Java Reflection
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulT, У вас есть поле. Оно не статическое. Оно пренадлежит какому-то экземпляру aka "объекту". У разных экземпляров разное значение поля. Поэтому чтобы записать или прочитать значение не статического поля, надо иметь ссылку на объект\экземпляр в поле которого вы хотите что-то записать. Почемы вы выдумали что там должен быть класс и усиленно держитель за эту мысль, мне не понятно. Большое спасибо, разобралась. Class c=obj.getClass(); в "c" получаем не сам объект, а его структуру, так сказать, мета-описание. В общем не "с" нужно было таскать по рекурсии, а делать так Object real=c.newInstance(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 11:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38684649&tid=2126959]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 549ms |

| 0 / 0 |
