У вас в классе по умолчанию просто T является Object, если тип не был передан в конструктор (Foo<тип>). В builder попробуйте добавить вывод runtimeType, так будет понятнее. Не претендую на истину, всё ещё учусь :)
T задан как extends A, так что вроде бы он должен быть A по умолчанию
Возможно, это просто не влияет на тип по умолчанию
@misteraleph если есть возможность, могли бы прокомментировать в чем может быть причина такого поведения? Это ожидаемое поведение или ошибка?
Есть где-то ишуй на эту тему. Так описан инференс. Могу завтра попробовать найти если не забуду
Если получится найти было бы здорово. Мне кажется что должен тип определяться как A в этом случае. Но возможно там какие то подводные камни... Хотелось бы понять.
С чего вдруг в строке 4 тип должен вывестись как A? Вы не указали явно тип
Обсуждают сегодня