|
|
|
коллекции
|
|||
|---|---|---|---|
|
#18+
подскажите, пожалуйста, как типизировать коллекции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 14:55:09 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
Generic'и авторimport java.util.Hashtable; class Test { public static void main(String[] args) { Hashtable<Integer, String> h = new Hashtable<Integer, String>(); h.put(new Integer(0), "value"); ... } } или переопределять коллекции и instanceof. Проверять типы объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 15:05:15 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
гмм...а можете, пожалуйста, без кода - в теории объяснить, что делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 15:06:39 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
вам нужно переопределить методы get, add и вставить в него код проверки типа объекта который должна хранить коллекция. Чтобы этого не делать создали Generic'и. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 15:11:39 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
ТимоНвам нужно переопределить методы get, add и вставить в него код проверки типа объекта который должна хранить коллекция. Чтобы этого не делать создали Generic'и. имхо в корне неверно. <Generics> и java.util.Collections.checkedXxx() два совершенно отличных друг от друга решения. (и конечно же руками ничего писать не надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 15:35:48 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
expp: Ну структурное различие понятно, в случае <Generics> в рантайме коллекции будут не типизированные. А вот в скорости от этого будет плюс или минус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:15:17 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
авторимхо в корне неверно. <Generics> и java.util.Collections.checkedXxx() два совершенно отличных друг от друга решения. (и конечно же руками ничего писать не надо) Поясните... Как вы хотите создать типизированную коллекцию в 1.4 ? автордва совершенно отличных друг от друга решения. Ок. Для чего нудны джинерики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:25:12 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
alx3expp: Ну структурное различие понятно, в случае <Generics> в рантайме коллекции будут не типизированные. А вот в скорости от этого будет плюс или минус? Монопенисуально. Сами ведь ответили: "в рантайме коллекции будут не типизированные". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:26:00 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
Timm Хм, странно. Вроде у дженериков "compile-time (static) type checking", а CheckedCollection это "dynamically typesafe view of the specified collection". Наверное динамическая проверка должна замедлять работу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:43:35 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
alx3Timm Хм, странно. Вроде у дженериков "compile-time (static) type checking", а CheckedCollection это "dynamically typesafe view of the specified collection". Наверное динамическая проверка должна замедлять работу? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 17:01:27 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
Как и ожидалось, байткод одинаковый. А если вместо Код: plaintext Код: plaintext Интересно стало посмотреть, что изменится; приду с работы поиграюсь с коллекциями, посмотрю checkedCollection поподробнее. Подскажите, чем вы байткод открываете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 17:43:18 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
alx3Как и ожидалось, байткод одинаковый. А если вместо Код: plaintext Код: plaintext Интересно стало посмотреть, что изменится; приду с работы поиграюсь с коллекциями, посмотрю checkedCollection поподробнее. Подскажите, чем вы байткод открываете? 1. Вы путаете понятия. Collections.checked* нужны, в первую очередь, для отладки старого кода, написанного без помощи compile-time type checking. С байт кодом ничего не произойдет. Просто коллекция обернется в "правильную", которая будет кидать ClassCastException сразу же при добавлении, а не в момент собственно каста. 2. стандартно, javap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 18:18:25 |
|
||
|
коллекции
|
|||
|---|---|---|---|
|
#18+
Спасибо! Теперь стало более понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 18:55:24 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34618029&tid=2145314]: |
0ms |
get settings: |
19ms |
get forum list: |
28ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
63ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 377ms |
| total: | 615ms |

| 0 / 0 |
