特别是,关键类如集合(ArrayList、 HashMap 等)、异常(IllegalArgumentException 等)以及其他 几个关键类(StringBuilder、 Comparator)现在都定义在 kotlin 包下。在 JVM 平台上,一些名称是相应 JDK 类的 类型别名,而在 JS 平台上,这些类在 Kotlin 标准库中实现。 更好的代码生成 JavaScript 后端现在生成更加可静态...
* Returns an array of objects of the given type with the given [size], initialized with null values. */ public fun <reified @PureReifiable T> arrayOfNulls(size: Int): Array<T?> /** * Returns an array containing the specified elements. */ public inline fun <reified @PureReifiable ...
List<Object> objects = list;// 👆 多态用在这里会报错 Required type:List<Object> Provided: List<String> 上面发生了赋值错误,这是因为 Java 的泛型本身具有「不可变性 Invariance」,Java 里面认为List<String>和List<Object>类型并不一致,也就是说,子类的泛型List<String>不属于泛型List<Object>的子类。
fun nextT(list: ArrayList<in T>,index: Int):T {//这里用了out声明处形变,还有in投影 var array = list.toArray() //return array[index+1] as T return list[index+1] as T } } fun main(args: Array<String>) { var s = Source<Int>() var arr = arrayListOf(1,2,3,4,5,5) print...
vararr = arrayOf(1,2,3)for(itinarr.valueWithIndex()) { println("${it.index}:${it.value}") } 迭代器 Java输出值,注意传统方式是需要实现接口再作为参数传入,后来增加了lambda方式(类似匿名函数): importjava.util.ArrayList;importjava.util.function.Consumer;classZava{ ...
val list3 = arrayListOf<Int>() //返回的是java的ArrayList,java的ArrayList是可读写的 var setList = setOf<Int>() //返回的是kotlin的set集合,一个无序并不支持重复item的集合 只读 var setMutableList = mutableSetOf<Int>() //返回的是kotlin的set集合 MutableSet 可读写 ...
List<String> list = new ArrayList<String>(); List<Object> objects = list; // 多态用在这里会报错 Required type:List<Object> Provided: List<String> 上面发生了赋值错误,这是因为 Java 的泛型本身具有「不可变性 Invariance」,Java 里面认为 List<String> 和 List<Object> 类型并不一致,也就是说,子类...
strings = arrayListOf("a", "bb", "ccc") strings.replaceAll(unaryOperator) println(strings) var i = 0 val add = { s: Int? -> i++ } //不报错 add(i) println(i) } 可以看出: Kotlin的lambda,没有那四种划分,调用时类似函数,(参数..),非常简洁 ...
省略类型参数的这种语法可用于不考虑类型参数的类型转换:list as ArrayList。 泛型函数调用的类型参数也同样只在编译期检测。在函数体内部, 类型参数不能用于类型检测,并且类型转换为类型参数(foo as T)也是非受检的。 The only exclusion is inline functions withreified type parameters, which have their actual ...
val list1 = listOf<Int>() //返回的是kotlin的List,只读 val list2 = mutableListOf<Int>() //返回的是kotlin的MutableList,可读写 val list3 = arrayListOf<Int>() //返回的是java的ArrayList,java的ArrayList是可读写的 var setList = setOf<Int>() //返回的是kotlin的set集合,一个无序并不支持重...