|
|
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#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 использовать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 19:41:28 |
|
||
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#18+
Если, всё паблик, то createBInstance можно тоже переопределить, закопипастив и добавив анонимный класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 13:06:56 |
|
||
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я так понимаю, делать это надо только в наследнике охватывающего класса ? Я не помню, никогда такой хренью не пользовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 13:20:20 |
|
||
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 13:25:08 |
|
||
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. проблемма в том, что createBInstance не совсем так прост - вызов кучи внутренних методов для инициализации и т.д. В итоге, нам надо половину кода класса A копировать сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2013, 02:01:37 |
|
||
|
Переопределить/заменить метод внутреннего класса
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2013, 15:39:41 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38425082&tid=2128434]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
59ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 406ms |

| 0 / 0 |
