Java和Kotlin泛型方法之间的差异

Java和Kotlin泛型方法之间的差异,java,generics,kotlin,Java,Generics,Kotlin,获得了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) { ... }

获得了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<*>) {}
public void方法(){}
fun方法(){}
公共T方法(T…p){返回p[0];}
有趣的方法(vararg p:T):T?{返回p[0]}
公共T方法(T[]p){…}
fun方法(p:Array):T{…}
公共T方法(T[]p{}
fun方法(p:Array):T其中T:InterfaceA{}
公共无效方法(集合){}
有趣的方法(集合:集合){}
Java和Kotlin中的通用方法是否还有其他区别(语法上或概念上)?还是Kotlin中通用方法的创新?谢谢你的回答

在泛型代码中,“?”表示未知类型。它被称为通配符。通配符有多种用途,包括作为字段、局部变量或参数的类型。 虽然Java的类型系统提供通配符类型,但Kotlin没有。然而,它有两个不同的东西;声明站点差异和类型投影作为通配符类型的替代

取自

在泛型代码中,“?”表示未知类型。它被称为通配符。通配符有多种用途,包括作为字段、局部变量或参数的类型。 虽然Java的类型系统提供通配符类型,但Kotlin没有。然而,它有两个不同的东西;声明站点差异和类型投影作为通配符类型的替代


摘自

我敢肯定,
@JvmSuppressWildcards
@EpicPandaForce仍然有问题,谢谢!注释JvmSuppressWildcards和JvmWildcard。我很确定
@JvmSuppressWildcards
@EpicPandaForce仍然存在一些问题,谢谢!注释jvmsuppresswildcard和JvmWildcard。