Вопросы по теме '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 просмотров
schedule
21.03.2022
Почему Resharper говорит, что преобразование ковариантного массива из строки [] в объект [] может вызвать исключение во время выполнения при операции записи с этим кодом?
Этот код:
comboBoxMonth.Items.AddRange(UsageRptConstsAndUtils.months.ToArray());
public static List<String> months = new List<String>
{
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",...
9247 просмотров
schedule
09.06.2023
Переопределить общие функции в 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 просмотров
schedule
22.12.2022
Каковы правила использования ключевого слова out в дженериках без получения ошибки компиляции?
В Котлине я изучаю ковариант (подтип можно использовать вместо супертипа). Написали там что-то вроде правила. но мне кажется это неправильным. Это написано:
Однако вы не можете использовать out, если у класса есть параметры функции или свойства...
35 просмотров
schedule
14.11.2022