|
|
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
Объясните, пожалуйста, почему в том же самом коде в java 6 вызывается один метод (дженериковый), а в java 7 - другой (не дженериковый)? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вывод при использовании java 6: 1: generic- 2: generic+ 3: generic+ Вывод при использовании java 7: 1: generic- 2: generic+ 3: generic- Код один и тот же. В чем причина такой разницы в поведении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 13:24 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
Разница не совсем "в поведении", а в компиляции. Посмотрите Java Language Specification раздел 15.12.2 http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.12.2 http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2 Он поменялся для JSE 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 13:44 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
BlazkowiczРазница не совсем "в поведении", а в компиляции. Посмотрите Java Language Specification раздел 15.12.2 http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.12.2 http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2 Он поменялся для JSE 7. Меня всегда удивляет как вы ориентируетесь в спеках - когда вы успеваете их читать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 15:08 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
eJackМеня всегда удивляет как вы ориентируетесь в спеках - когда вы успеваете их читать??? А что там ориентироваться? Проблема в overload. Открыл содержание. Пробежался поиском по overload. Нашел где описывается выбор методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 15:19 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! Вы правы, это разница на уровне компиляции. Сравнил байткод: в java 6 код кейса 3 = код кейса 2, компилятор сам прикручивает автобоксинг вида Integer.valueOf(...) Код: java 1. 2. 3. в java 7 код кейса 3 = код кейса 1, автобоксинга нету Код: java 1. 2. Посмотрел спецификации, но не могу найти пункт в котором отличие. Можете подсказать точное место в спецификации или шаг на котором это отличие существует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:19 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
ales111Вы правы, это разница на уровне компиляции. Сравнил байткод: Можно было просто скомпилять в Java 6 и запустить в Java 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:28 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
авторМожно было просто скомпилять в Java 6 и запустить в Java 7. так бы не получилось увидеть, какой байткод генериться при компиляции в Java 7, а вообще это было для эксперимента важнее этот вопрос: авторМожете подсказать точное место в спецификации или шаг на котором это отличие существует? можете на него ответить? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:52 |
|
||
|
Разница в поведении java 6 и java 7 (type inference difference)
|
|||
|---|---|---|---|
|
#18+
ales111можете на него ответить? спасибо Ищу. Может действительно бага. Вот похожая, но не она. http://bugs.java.com/view_bug.do?bug_id=6182950 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38604198&tid=2127389]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 546ms |

| 0 / 0 |
