英文:
How method java.util.Collections#copy should look in kotlin?
问题
许多指南试图解释? extend T
和? super T
之间的区别,以java.util.Collections#copy
方法作为示例:
public static <T> void copy(List<? super T> dest, List<? extends T> src) {
}
这个方法在 Kotlin 中应该是这样的:
fun <T> copy(dest: List<in T>, src: List<out T>) {
}
然而,当我尝试将此方法复制粘贴到 Kotlin 类中并由 IntelliJ Idea 转换为 Kotlin 时,此方法看起来像这样:
fun <T> copy(dest: List<T?>?, src: List<T?>?) {}
但是这段代码无法编译通过。
英文:
Many guids in which try to explain differences between ? extend T
and ? super T
use as example method java.util.Collections#copy
public static <T> void copy(List<? super T> dest, List<? extends T> src) {
}
How this method should look in kotlin?
If i try to copy and past this method in Kotlin class and convert to kotlin by IntelliJ Idea when this method look like
fun <T> copy(dest: List<in T?>?, src: List<T?>?) {}
But this code not compiled.
答案1
得分: 0
Kotlin的List是不可变的。参见这个帖子。
fun <T> copy(
dest: MutableList<in T>,
src: List<T>
) {
}
英文:
Kotlin List are not mutable. See this post
fun <T> copy(
dest: MutableList<in T>,
src: List<T>
) {
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论