История изменений
Исправление ya-betmen, (текущая версия) :
Да, так будет работать, но странно что только так и никак иначе, и нельзя getModelType сразу определить в A.
Ты хочешь странного, дженерики нужны что б проверять типы на этапе компиляции. Попробую пояснить логику, твой getModelType, возвращает класс, если ты создашь его инстанс то этот инстанс должен будет оперировать (а иначе нафиг дженерик) с типами CONTAINER и String. Но объект от голого ValueContainer будет оперировать с Object и Object.
Теоретически ситуацию помог бы решить возврат ValueContainer<CONTAINER, String>.class, но этого очевидно джава не умеет. Должна ли? Выше подсказали трюк с кастом к Class.
Если у тебя дженерик-параметры возвращаемого класса важны, то ты хочешь странную вещь, если же эти параметры не важны, то сделай просто public Class<ValueContainer> getModelType() и не майся.
Исправление ya-betmen, :
Да, так будет работать, но странно что только так и никак иначе, и нельзя getModelType сразу определить в A.
Ты хочешь странного, дженерики нужны что б проверять типы на этапе компиляции. Попробую пояснить логику, твой getModelType, возвращает класс, если ты создашь его инстанс то этот инстанс должен будет оперировать (а иначе нафиг дженерик) с типами CONTAINER и String. Но объект от голого ValueContainer будет оперировать с Object и Object.
Теоретически ситуацию помог бы решить возврат ValueContainer<CONTAINER, String>.class, но этого очевидно джава не умеет. Должна ли?
Если у тебя дженерик-параметры возвращаемого класса важны, то ты хочешь странную вещь, если же эти параметры не важны, то сделай просто public Class<ValueContainer> getModelType() и не майся.
Исходная версия ya-betmen, :
Да, так будет работать, но странно что только так и никак иначе, и нельзя getModelType сразу определить в A.
Ты хочешь странного, дженерики нужны что б проверять типы на этапе компиляции. Попробую пояснить логику, твой getModelType, возвращает класс, если ты создашь его инстанс то этот инстанс должен будет оперировать (а иначе нафиг дженерик) с типами CONTAINER и String. Но объект ValueContainer будет оперировать с Object и Object.
Теоретически ситуацию помог бы решить возврат ValueContainer<CONTAINER, String>.class, но этого очевидно джава не умеет. Должна ли?
Если у тебя дженерик-параметры возвращаемого класса важны, то ты хочешь странную вещь, если же эти параметры не важны, то сделай просто public Class<ValueContainer> getModelType() и не майся.