Size: a a a

Programming Offtop

2020 May 14

RU

Roman Ushakov in Programming Offtop
звучит так будто на существование extends можно забить
источник

AM

Andrew Mikhaylov in Programming Offtop
У тебя тут конкретно вот эти два ? совершенно никак не связаны между собой
SomeClass<? extends Object> someClass = new SomeClass<>();
final List<? extends Object> someList;
источник

RU

Roman Ushakov in Programming Offtop
а вот теперь понял
источник

VP

Vladimir Petrakovich in Programming Offtop
Roman Ushakov
звучит так будто на существование extends можно забить
extends Object - это вообще мусор, там всегда extends Object
источник

AM

Andrew Mikhaylov in Programming Offtop
А в классе T класса и T в методе — это один и тот же T
источник

RU

Roman Ushakov in Programming Offtop
Vladimir Petrakovich
extends Object - это вообще мусор, там всегда extends Object
это пример
источник

VP

Vladimir Petrakovich in Programming Offtop
Roman Ushakov
это пример
Ну а в общем случае это лишь ограничение, конкретный тип неизвестнен
источник

AM

Andrew Mikhaylov in Programming Offtop
Вот тебе компилятор и пишет, что там есть два отдельных типа capture#1 и capture#2
источник

RU

Roman Ushakov in Programming Offtop
да я думал в эту сторону, но не думал, что так действительно задизайнят
источник

AM

Andrew Mikhaylov in Programming Offtop
В котле, если поймаешь какой-нибудь T#1 и T#2 в тексте ошибки — смотреть ровно туда же :) Это два разных T,  просто названия клешатся
источник

RU

Roman Ushakov in Programming Offtop
Да я знаю, дженерики же подобные
источник

VP

Vladimir Petrakovich in Programming Offtop
List<? extends Number> - это список какого-то типа, который наследует Number, но что там именно лежит - хз, поэтому запихивать туда ничего нельзя (кроме null, мы же в джаве 😄).
Представь два списка с таким типом, и ты пытаешься содержимое одного в другой запихать. Законно ли это?
источник

RU

Roman Ushakov in Programming Offtop
с null'ом, конечно кек
источник

AM

Andrew Mikhaylov in Programming Offtop
Roman Ushakov
с null'ом, конечно кек
Ну блин, джавка же :) Ровно за счёт этого там и Void населён, хотя казалось бы -- ну откуда может существовать значение типа Void, сказать сишнику какому -- не поверит))))
источник

VP

Vladimir Petrakovich in Programming Offtop
Andrew Mikhaylov
Ну блин, джавка же :) Ровно за счёт этого там и Void населён, хотя казалось бы -- ну откуда может существовать значение типа Void, сказать сишнику какому -- не поверит))))
Как будто у них там система типов лучше 😄
источник

VP

Vladimir Petrakovich in Programming Offtop
Опять компилятор сломался
Exception in thread "main" java.lang.VerifyError: Call to wrong <init> method
источник

RU

Roman Ushakov in Programming Offtop
Боюсь спросить, такое с дженериками, как у джавы везде?
Я почему-то всегда думал, что это проблема только Java
Просто с ходу придумать хорошее решение я не могу для решения проблемы типа List<? extends Number>
источник

BP

Bogdan Panchenko in Programming Offtop
Roman Ushakov
Боюсь спросить, такое с дженериками, как у джавы везде?
Я почему-то всегда думал, что это проблема только Java
Просто с ходу придумать хорошее решение я не могу для решения проблемы типа List<? extends Number>
Думаю везде
источник

VP

Vladimir Petrakovich in Programming Offtop
Roman Ushakov
Боюсь спросить, такое с дженериками, как у джавы везде?
Я почему-то всегда думал, что это проблема только Java
Просто с ходу придумать хорошее решение я не могу для решения проблемы типа List<? extends Number>
А в чём проблема-то?
источник

RU

Roman Ushakov in Programming Offtop
Ну я хочу использовать систему типов языка без лазеек
источник