Size: a a a

2020 June 20

VN

Vladislav Navrocky in Kotlin JVM
Чего-то не пойму... В jooq есть
SelectSelectStep<Record1<Integer>> selectCount();

Результат не присваивается в переменную типа:
val selectStep: SelectSelectStep<Record> = dsl.selectCount()

Хотя interface Record1<T> implements Record

В чем может быть дело?

Ошибка такая:
Error:(103, 65) Kotlin: Type mismatch: inferred type is SelectSelectStep<Record1<Int!>!>! but SelectSelectStep<Record> was expected
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
В котлине нет raw types
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
Чего-то не пойму... В jooq есть
SelectSelectStep<Record1<Integer>> selectCount();

Результат не присваивается в переменную типа:
val selectStep: SelectSelectStep<Record> = dsl.selectCount()

Хотя interface Record1<T> implements Record

В чем может быть дело?

Ошибка такая:
Error:(103, 65) Kotlin: Type mismatch: inferred type is SelectSelectStep<Record1<Int!>!>! but SelectSelectStep<Record> was expected
Ну так Record1 extension Record
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
А Record не дженерик?
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
хах, так это ж про ковариантность
источник

BP

Bogdan Panchenko in Kotlin JVM
Нет, это интерфейс
источник

VN

Vladislav Navrocky in Kotlin JVM
Паша Финкельштейн
А Record не дженерик?
public interface Record1<T1> extends Record {

public interface Record extends Attachable, Comparable<Record>, Formattable {
источник

VN

Vladislav Navrocky in Kotlin JVM
когда написал такие же интерфейсы на котлине, то всё присваивается
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
Там поди должно быть SelecSelectStep<T super Record>
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
хммм
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
Тогда не понимаю
источник

VN

Vladislav Navrocky in Kotlin JVM
    interface A
   interface B<T> : A

   fun listOfB(): List<B<Int>> { TODO() }
   val listOfA: List<A> = listOfB()

Вот такое компилится
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
я чот не понимаю, да
источник

BP

Bogdan Panchenko in Kotlin JVM
Vladislav Navrocky
    interface A
   interface B<T> : A

   fun listOfB(): List<B<Int>> { TODO() }
   val listOfA: List<A> = listOfB()

Вот такое компилится
Может проблема в том что там платформенный тип ?
источник

ПФ

Паша Финкельштейн... in Kotlin JVM
Тоже странно потому что там все платформенные
источник

VN

Vladislav Navrocky in Kotlin JVM
Bogdan Panchenko
Может проблема в том что там платформенный тип ?
Ну вот только что это на Java..
источник

BP

Bogdan Panchenko in Kotlin JVM
Попробуй сделать екстеншен, где просто скасти к котлиновскому типу (что бы проверить)
источник

VN

Vladislav Navrocky in Kotlin JVM
источник

VN

Vladislav Navrocky in Kotlin JVM
вот я добился с котлином то же самое
источник

VN

Vladislav Navrocky in Kotlin JVM
почему не дает присвоить?
источник