我如何像在Java中那样创建数组?
int A[] = new int[N];
如何在Kotlin中做到这一点?
根据参考资料,可以通过以下方式创建数组:
IntArray
,DoubleArray
等等。它存储拆箱值。它们是使用相应的构造函数和工厂函数创建的:
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
第一个与Java中的相似,它只是创建一个填充有默认值的原始数组,例如,对于Int
,false
为Boolean
。
Array<T>
类表示,其中T
项类型。T
还是可以的类型Java中的原始的一种(Int
,Boolean
,…),但值内将等同盒装Java的Integer
,Double
等等。
同样,T
可以像和一样为可为空和为非空。String``String?
这些以类似的方式创建:
val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" }
val myStrings = arrayOf("foo", "bar", "baz")
val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }
据我所知,我不认为Java有像kotlin这样的扩展函数。但是我想知道有没有办法在java中扩展字符串类来创建扩展函数。
问题内容: 由于Java泛型的实现,因此不能有以下代码: 如何在保持类型安全的同时实现此目的? 我在Java论坛上看到了这样的解决方案: 但是我真的不知道发生了什么。 问题答案: 我不得不问一个问题:您的GenSet“已选中”还是“未选中”?那是什么意思? 检查:强打字。GenSet明确地知道什么类型的包含对象(即它的构造是明确要求有Class 参数,当他们通过了类型不是参数的方法会抛出异常E。见
编辑 在@CopsOnRoad的帮助下,我取得了如下成就: 完整代码:
问题内容: 我想通过Java在Kafka(kafka_2.8.0-0.8.1.1)中创建一个主题。如果我在命令提示符下创建一个主题,并且如果我通过java api推送消息,它也可以正常工作。但是我想通过java api创建一个主题。经过长时间的搜索,我发现了以下代码, 我尝试了上面的代码,它表明创建了主题,但是无法在该主题中推送消息。我的代码有什么问题吗?还是通过其他方式实现以上目标? 问题答案:
我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?
Kotlin编译器给了我以下警告: 警告:(399,1)Kotlin:内联“…”的预期性能影响可能是无关紧要的。内联最适用于具有lambda参数的函数 在这种情况下,我想取消显示此警告。但是,我不知道给什么值,也找不到任何文档说明接受什么值。 可以为提供哪些可能的值,它们是什么意思?