
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.10.2013, 19:41:28
|
|||
|---|---|---|---|
|
|||
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
Необходимо переопределить/заменить один метод внутреннего класса не меняя исходный код того класса. Вот небольшой пример того, что надо сделать: A.java: public class A { public B createBInstance() { ... } public static class B extends SomeClass { public String getValue() { return "test1"; } } } И есть класс С где я это использую: C.java: public class C { public void testMethod() { C test = new A().createBInstance(); test.getValue(); } } Можно ли переопределить/заменить метод, чтобы test.getValue вернуло мне "test2". Класс С - мой и я могу там делать все. Класс A я менять не могу. AOP использовать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.10.2013, 13:06:56
|
|||
|---|---|---|---|
|
|||
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
Если, всё паблик, то createBInstance можно тоже переопределить, закопипастив и добавив анонимный класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.10.2013, 13:20:20
|
|||
|---|---|---|---|
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
Blazkowicz, Я так понимаю, делать это надо только в наследнике охватывающего класса ? Я не помню, никогда такой хренью не пользовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.10.2013, 13:25:08
|
|||
|---|---|---|---|
|
|||
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2013, 02:01:37
|
|||
|---|---|---|---|
|
|||
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
Blazkowicz Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. проблемма в том, что createBInstance не совсем так прост - вызов кучи внутренних методов для инициализации и т.д. В итоге, нам надо половину кода класса A копировать сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2013, 15:39:41
|
|||
|---|---|---|---|
Переопределить/заменить метод внутреннего класса |
|||
|
#18+
diverMпроблемма в том, что createBInstance не совсем так прост - вызов кучи внутренних методов для инициализации и т.д. В итоге, нам надо половину кода класса A копировать сюда. Смотря что за класс B. Если он относительно простой, и в нем нет public/protected/package private final методов, то можно попробовать сделать над ним враппер и возвращать его. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2128434]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
216ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 481ms |

| 0 / 0 |
