我已经开始使用Kotlin作为java的替代品,并且非常喜欢它。然而,如果不跳回java领域,我就无法找到解决方案:
我有一个Iterable
可能的(如果不满意)解决方案:
val valueList = arrayListOf(values)
// iterate through valuelist
或者
fun copyIterableToList(values: Iterable<SomeObject>) : List<SomeObject> {
var outList = ArrayList<SomeObject>()
for (value in values) {
outList.add(value)
}
return outList
}
除非我有误解,否则它们最终会出现
mutablelist
,这很有效,但感觉像是一种变通方法。是否有类似的immutableListOf(Iterable)
在Kotlin中,列表
一般来说,
List
更接近问题,
toList()
为Iterable扩展函数
示例:
val iterable: Iterable<Int> = listOf(1, 2, 3)
val list: List<Int> = iterable.toList()
看起来很简单,但是,如何初始化 Kotlin 的以清空? 我可以用这种方式破解它,但我肯定有更简单的方法:
我有一个没有扩展可串行化或可外部化接口的类,但在netbeans中使用FindBugs时仍然会遇到错误。有人能告诉我如何解决这个问题吗? 这是我的课 FindBug中的Bug:类分析器定义了一个非瞬时的非序列化实例字段objAnalyzerVar,对于objAnalyzerDataTypeInfo也是如此;
考虑以下代码: 现在扩展了一个实现接口的类。类和是带有一堆getter和setter的POJOS。FindBugs抱怨和字段说: 这个Serializable类定义了一个非基元实例字段,它既不是瞬态的、Serializable的,也不java.lang.Object的,并且似乎没有实现Externalizable接口或readObject()和WriteObject()方法。 好吧,所以一切都很好
我正在学习Kotlin,它看起来很可能我想在下一年把它作为我的主要语言。然而,我不断得到矛盾的研究,Kotlin有或没有不可变的集合,我试图弄清楚我是否需要使用Google Guava。 有人能给我一些指导吗?它是否默认使用不可变集合?哪些运算符返回可变或不可变的集合?若否,有否计划实施?
我希望我的类有一个字段,该字段返回所有公共访问的不可变列表,但在对象实例中,我希望列表是可变的,以便我可以向其添加元素。 我试过了,但不确定这是否被视为良好做法?
我有一个Java/Kotlin互操作问题。一个Kotlin不可变列表被编译成一个普通的java.util.ArrayList,它是可变的! 静态编程语言(库): Java(消费者): 如何使我的 Kotlin 类从 Java 的角度来看也是完全不可变的?