|
|
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Привет! Подскажите, пожалуйста, как правильно написать ограничение при использовании обобщенного типа В моем варианте ругается на 2 строки: Node<T1, T2> x = root, y = null; //Incompatible types root = newNode;//Incompatible types Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:11 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
У вас три раза объявлен тип T1 и два раза объявлен тип T2. Компилятор не даёт гарантий что T1 объявленый в одом месте, будет тот же тип, что T1 объявленый в другом месте. Нужно всё свести к одному объявлению. И никогда не пишите через запятую объявление переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:22 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Чтобы вам было понятнее, вот ваш код: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. И приводите ошибки полностью, а то надо взять, скопилировать и посмотреть, только потому что вам лень скопировать всю инфу об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:25 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Теперь о решении. Основные ошибки, на сколько я понимаю две. Generic method - нафиг не нужен. Он даже не статический. Node не может быть static. Почему root принадлежит Node, а не Tree, тоже не совсем понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:33 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо. Изначально я написал так: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. В таком варианте он ругается, что не знает метод compareTo: Error:(82, 28) java: cannot find symbol symbol: method compareTo(T1) location: variable k of type T1 Потом, я сделал метод generic. другие ошибки появились. Про root - типа Node. Корень тоже узел, я так понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:39 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
mr_virtus, и так компилирется: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Я так понимаю, я сказал тут компилятору, что класс Node принимает другие параметры, чем класс BSTree, хотя обозначил поля класса Node как T1, T2. И стало работать. Почему? класс дерево, который хранить связанные узелки. Узел - состоит из ключа, указателя на левого сына, указателя на правого сына, значения. И чтоб ключ и значения были генерик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:57 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Вот такая вообще у меня задача: создать класс дерево, который хранить связанные узелки. Узел - состоит из ключа, указателя на левого сына, указателя на правого сына, значения. И чтоб ключ и значения были генерик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 11:58 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Посмотрите TreeMap. Ваш случай. Есть корень. Есть компаратор. Есть Entry. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 12:02 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Ну да, кстати. Спасибо за идею. Попробую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 12:06 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 12:07 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, То что надо, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 12:11 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста, если класс узла объявить приватным и сделать так то все бы заработало? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 14:15 |
|
||
|
Ошибка , обобщенное программирование
|
|||
|---|---|---|---|
|
#18+
Psolao, работает так. Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Blazkowicz точно сделал замечание на счет: " Generic method - нафиг не нужен. Он даже не статический. Почему root принадлежит Node, а не Tree, тоже не совсем понятно. " Это я изменил и ошибки все пропали. private я думаю здесь особой роли не играет. обращаемся мы к этому внутреннему классу из его внешнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38674338&tid=2127024]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
199ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 287ms |
| total: | 549ms |

| 0 / 0 |
