Вопросы по теме 'covariant'

Есть ли лучшее решение для абстрактного класса A‹T extends A›?
Я хочу переопределить метод и заменить параметр, который он принимает, подклассом этого параметра. Для возвращаемого типа проблем нет, потому что они не являются частью сигнатуры метода и могут быть заменены подклассами (так называемые...
671 просмотров
schedule 18.07.2022

Ковариантный массив Java плохой?
Несколько человек сказали мне, что Java допускает подтип ковариантного массива, другими словами, если A является подтипом B, то A[] является подтипом B[], но это плохая функция, потому что она может привести к времени выполнения ошибки. Может ли...
775 просмотров
schedule 07.02.2023

Неверный ковариантный тип с клонируемым классом CRTP
Я пытаюсь реализовать класс Clonable с помощью CRTP. Однако мне нужен абстрактный класс с чистым виртуальным методом клонирования, переопределенным дочерними классами. Чтобы это произошло, мне нужно, чтобы функция клонирования возвращала...
705 просмотров

Почему Resharper говорит, что преобразование ковариантного массива из строки [] в объект [] может вызвать исключение во время выполнения при операции записи с этим кодом?
Этот код: comboBoxMonth.Items.AddRange(UsageRptConstsAndUtils.months.ToArray()); public static List<String> months = new List<String> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",...
9247 просмотров

Переопределить общие функции в Scala. Метод xxx ничего не переопределяет Ошибка
Я изучаю возможности языка Scala. Я объявляю класс с параметром типа. class Pair[+T](val first: T, val second: T){ // T is a covariant type. So an invariance R is introduced. def replaceFirst[R >: T](newFirst: R) = { new Pair(newFirst,...
743 просмотров
schedule 13.06.2022

Почему ковариантный тип не используется в качестве универсального ограничения для методов интерфейса? (С#)
Проблема: interface ICovariant<out R> { // The following statement generates a compiler error // because you can use only contravariant or invariant types // in generic constraints. // void DoSomething<T>() where T : R;...
51 просмотров

Каковы правила использования ключевого слова out в дженериках без получения ошибки компиляции?
В Котлине я изучаю ковариант (подтип можно использовать вместо супертипа). Написали там что-то вроде правила. но мне кажется это неправильным. Это написано: Однако вы не можете использовать out, если у класса есть параметры функции или свойства...
35 просмотров
schedule 14.11.2022