Полученные аналоговые синтаксические конструкции для обобщенных c методов в Java и Kotlin:
public <T> void method() {}
fun <T> method() {}
public <T> T method(T... p) { return p[0]; }
fun <T> method(vararg p: T): T? { return p[0] }
public <T extends ClassA> T method(T[] p) { ... }
fun <T : ClassA> method(p: Array<T>): T { ... }
public <T extends ClassA & InterfaceA> T method(T[] p) {}
fun <T : ClassA> method(p: Array<T>): T where T : InterfaceA {}
public void method(Collection<? extends ClassA> collection) {}
fun method(collection: Collection<out ClassA>) {}
public void method(Collection<? super ClassA> collection) {}
fun method(collection: Collection<in ClassA>) {}
public void method(Collection<?> collection) {}
fun method(collection: Collection<*>) {}
Существуют ли другие дополнительные различия (синтаксические или концептуальные) для обобщенных методов в Java и Kotlin? Или нововведения для обобщенных c методов в Kotlin? Спасибо за любой ответ.