java - 函数名前的泛型 <T> 参数

标签 java generics kotlin

<T> 的用法是什么?在 Kotlin 函数名称​​之前键入参数?

例子:

fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
    val tmp = this[index1] 
    this[index1] = this[index2]
    this[index2] = tmp
}

引用第一个<T>以上。

我试图浏览 Kotlin docs关于泛型以及 Java Generics然而,他们大多只是在 2 日接触 <T>不是第一个。

最佳答案

用于表示使用泛型而不是某种类型T被引用。

看看这个完全有效的例子

fun <String> MutableList<String>.swap(index1: Int, index2: Int)

现在可以在任何 MutableList<*> 上调用它不仅是MutableList<String> .如果你不会写 <String>fun之后关键字,kotlin 怎么知道实际上你引用的是泛型而不是 kotlin.String

您展示的示例也是如此。 <>fun之后只是引入了一个新的通用参数,否则 kotlin 会提示它不知道类型 T

关于java - 函数名前的泛型 <T> 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54880432/

相关文章:

java - 自 JRE 8u232 起,JNI 无法在签名的 JAR 中找到类

java - 使用泛型时我应该做什么来测试 EasyMock 对象?易模拟

kotlin - Android jetpack compose更改脚手架背景颜色不改变

Kotlin 没有看到 Java Lombok 访问器?

c# - 多态性能受到影响

java - 如何使用 OpenTok 收听来 self 的应用程序的传入视频通话?

java - 需要帮助来判断向左或向右滑动

java - 当我们使用类实例调用静态方法/函数时会发生什么?

java - 初始化 Selenium 页面对象,最佳实践

Java 泛型——如何阅读这个 : Foo<T extends Bar<? extends Foo<T>>>?