Size: a a a

2020 September 01

T

Tim Ami in pro.jvm
Человеку T нужно а не this
источник

WD

WhoLetThe DogsOut in pro.jvm
Здесь нет противоречия. Человеку нужно (T) this.
источник

T

Tim Ami in pro.jvm
ну например он хочет этим типом обьект параметризовать - и как?
источник

SA

Situation Act in pro.jvm
WhoLetThe DogsOut
У вы чёт заморачиваетесь. Просто default <T extends ThisInterface> T doSmth(){ return (T) this; } человеку подойдёт.
Идея ругается: unchecked cast
источник

SA

Situation Act in pro.jvm
Есть возможность try generify, но ничего не происходит
источник

WD

WhoLetThe DogsOut in pro.jvm
Сапрессь его.
источник

WD

WhoLetThe DogsOut in pro.jvm
И добро пожаловать в клуб рефлексистов.
источник

T

Tim Ami in pro.jvm
И вот тут бы стирание вспомнить.
источник

O

OxFAB in pro.jvm
Situation Act
Слушайте, а можно объявить в дефолтном методе интерфейсе возвращаемый тип его потомка?
Ну в конце пишем return this;  
А вот  как написать тип, чтоб он возвращал объект того класса, который имплементит этот интерфейс
Пока дискуссия не ушла очень далеко осмелюсь спросить: а зачем?
источник

WD

WhoLetThe DogsOut in pro.jvm
У тебя эта штука сломается в следующем сценарии:
A a = getA();
B b = a.doSmth();
При условии, что A и B implements ThisInterface и A !extends B. Но оч. сомневаюсь, что тебе где-то потребуется так писать.
источник

WD

WhoLetThe DogsOut in pro.jvm
OxFAB
Пока дискуссия не ушла очень далеко осмелюсь спросить: а зачем?
Например для чейнед методов без потери типа.
источник

SA

Situation Act in pro.jvm
OxFAB
Пока дискуссия не ушла очень далеко осмелюсь спросить: а зачем?
Ну есть базовый интерфейс, в который вынесены повторяющиеся действия. Его имплементят классы по ПейджОбжекту и вот нужно, чтоб метод возвращал тот тип, в котором он был вызван
источник

T

Tim Ami in pro.jvm
OxFAB
Пока дискуссия не ушла очень далеко осмелюсь спросить: а зачем?
делаем дженерик внутри которого дженерик будет
источник

T

Tim Ami in pro.jvm
было такое нужно для фабрики монго-коллекций
источник

SA

Situation Act in pro.jvm
WhoLetThe DogsOut
У вы чёт заморачиваетесь. Просто default <T extends ThisInterface> T doSmth(){ return (T) this; } человеку подойдёт.
Не сработало 😢
источник

O

OxFAB in pro.jvm
Situation Act
Ну есть базовый интерфейс, в который вынесены повторяющиеся действия. Его имплементят классы по ПейджОбжекту и вот нужно, чтоб метод возвращал тот тип, в котором он был вызван
1. возвращать Object и кастить везде
2. см. мой коммент выше - через доп. метод в интерфейсе
3. кастить к T но будут проблемы

Узнаете что новое - пинганите, интересно 😊
источник

WD

WhoLetThe DogsOut in pro.jvm
Tim Ami
было такое нужно для фабрики монго-коллекций
Монго-лекции выглядят куда интереснее.
источник

T

Tim Ami in pro.jvm
Ога
источник

WD

WhoLetThe DogsOut in pro.jvm
Situation Act
Не сработало 😢
Кинь скринчик в личку.
источник

WD

WhoLetThe DogsOut in pro.jvm
OxFAB
1. возвращать Object и кастить везде
2. см. мой коммент выше - через доп. метод в интерфейсе
3. кастить к T но будут проблемы

Узнаете что новое - пинганите, интересно 😊
Как жаль, что в жаве нет any.
источник