Tag: Java

Java:用分隔符连接基元数组

假设,我有一个数组: int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7}; 我需要使用分隔符来连接它的元素,例如” – ” ,所以我得到这样的字符串: “1 – 2 – 3 – 4 – 5 – 6 – 7” 我怎么能这样做? PS:是的,我知道这个和这个post,但是它的解决方案不能用于一系列原语。

将用于复制资产文件的java代码转换为Android中的缓存文件夹到Kotlin的最佳实践

我使用这个代码来将Android中的Asset文件复制到缓存文件夹,重点在于它是一个Java代码,我将它转换为Kotlin,但是它看起来更多的是围绕while循环的Java(ish): val file = File(“${cacheDir.path}/$fileName”) val dir = file.parentFile dir.mkdirs() val inputStream = assets.open(fileName) val bufferedOutputStream = BufferedOutputStream(FileOutputStream(file)) val buf = ByteArray(10240) var num = inputStream.read(buf) // Java version: while ((num = fi.read(buf)) > 0) while (num > 0) { bufferedOutputStream.write(buf, 0, num) num = inputStream.read(buf) } bufferedOutputStream.close() inputStream.close() 任何能使Kotlin更为专业的专家。

退货和内联

我试图find相当于这个Java返回的Kotlin: return new int[] {1, 2, 3}; 我试过只是宣布然后像这样返回: val returnArr: IntArray = intArrayOf(1, 2, 3) return returnArr 但是我得到一个警告,说:“variables只用于下面的回报,可以内联”。 内联是什么意思? 有没有办法在一条线上做到这一点?

用于Yubico OpenPGP智能卡的PGP数据加密

我试图在Java应用程序中基于Yubikey NEO OpenPGP智能卡小程序实现PGP加密。 这似乎是一个黑暗的艺术,并不容易谷歌这个东西,但这里是我到目前为止: 卡被初始化,密钥是使用gpg工具生成的。 它一般工作。 我有我的公钥以.asc格式,并设法加载到org.bouncycastle.openpgp 使用javax.smartcardio API连接到USB加密狗的智能卡。 选择OpenPGP小程序 val pgpAID = bytes(0xD2, 0x76, 0x00, 0x01, 0x24, 0x01) val answer = cardChannel.transmit(CommandAPDU(0x00, 0xA4, 0x04, 0x00, pgpAID)) 成功向卡提交正确的PIN码 val pin = “123456” return bytes(0x00, 0x20, 0x00, 0x82, pin.length) + pin.toByteArray(Charsets.UTF_8) 发送准成功(见下文) decipher命令 bytes(0x00, 0x2a, 0x80, 0x86, data.size) + data + bytes(0x00) 当data = “xxxx”.toByteArray() ,结果是SW=9000 […]

Mac上的Java开发 – Xcode,Eclipse或Netbeans

我一直在使用Xcode进行通常的C / C ++ / ObjC开发。 我想知道什么是实际的考虑,Xcode,Eclipse或NetBeans的使用在Mac上的Java观点的发展? 请不要在分析中包含我目前使用的Xcode。

Koltingenerics声明 – 站点方差构造

我正在阅读kotlin没有通配符的原因( https://kotlinlang.org/docs/reference/generics.htm l)。 这一切都来到声明网站的变化。 我们有和结构应该取代通配符。 我想我明白了是如何运作的,但我却在遇到麻烦。 所以在java中,我们可以这样写: public List list1; public List list2; 初始化后的第一种情况变成只读列表(虽然不是完全不可改变的原因,我们可以清除它),如果我们把每个元素都视为数字,就可以读取它们。 第二种情况是只写(尽管我们可以阅读它,如果我们把每个元素作为对象)。 我们可以写那里字符串和它的子类。 在Kotlin中,我能够像这样使用重新创建list1示例: class Service { val container = Container(mutableListOf(“1”, “2”, “3”)) } class Container(var list1: MutableList) 最后我尝试了一些类似于东西,认为我可以重新创建list2的例子,但是我失败了: 有人可以向我解释如何在Kotlin中实现我的list2例子吗? 我应该如何正确使用结构?

有没有办法使用Gradle将Kotlin类编译为JavaScript?

我正在使用Kotlin Gradle插件构建一个项目。 一般来说,我的目标是JVM,但将项目的一部分编译为JavaScript将会非常有用。 我知道在使用IntellJ插件构建项目时(如在浏览器博客文章中写入Kotlin中所述 ),项目可能会定位JavaScript,但是如何使用Gradle来实现呢? 把项目分成几个gradle模块,我很确定。

在尝试提交广播variables的Spark中的Kafka偏移量时获取任务不可序列化

我写了从Kafka读取并且手动提交偏移量的 Spark作业。 它工作正常,但自从我引入广播variables,我得到序列化exception,因为它试图序列化KafkaInputDStream。 下面是一个显示问题的简单代码(代码是用Kotlin编写的,但我相信它也会在Java中发生): fun testBroadCast(jsc: JavaStreamingContext, kafkaStream: JavaInputDStream<ConsumerRecord>) { val keyPrefix = jsc.sparkContext().broadcast(“EVENT:”) kafkaStream.foreachRDD { rdd -> val offsetRanges = (rdd.rdd() as HasOffsetRanges).offsetRanges() val prefixedIds = rdd.map { “${keyPrefix.value}:$it” }.collect() (kafkaStream.dstream() as CanCommitOffsets).commitAsync(offsetRanges) } } fun main(args: Array) { val jsc = JavaStreamingContext(SparkConf().setAppName(“test simple prefixer”).setMaster(“local[*]”), Duration(5000)) val stream = makeStreamFromSerializableEventTopic(jsc) testBroadCast(jsc, stream) jsc.start() jsc.awaitTermination() […]

Scala和Kotlin的手动JAR编译

我正在尝试为Kotlin创建一个调用Scala代码的概念certificate。 以下是目前项目的情况: kotlin-src/ hello.kt scala-src/ Hello.scala 然后编译这两种语言: kotlinc kotlin-src/*.kt scalac scala-src/*.scala 在根目录下生成以下文件: META-INF/ main.kotlin_module HelloKt.class HelloScala.class 我试图变成一个JAR: jar cvfM run.jar *.class META-INF 但是,它不会运行(我认为这是因为我没有指定一个主类)。 $ java -jar run.jar Error: Invalid or corrupt jarfile run.jar 所以,我创建了以下清单: Main-Class: HelloKt 在编译jar之前,这个文件被复制到META-INF目录下,结果如下: HelloKt.class HelloScala.class META-INF/ META-INF/main.kotlin_module META-INF/MANIFEST.MF 新的JAR将执行,但总是失败并产生运行时exception。 $ java -jar run.jar Exception in thread “main” java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics at HelloKt.main(hello.kt) […]

为什么$ MockitoMock $实例不被识别为模拟?

我使用Kotlin,Mockito和MockitoJRunner运行以下简化测试: open class SomeClassToBeMocked @Inject constructor() { fun map(foo: Foo): Bar {…} } @Mock private lateinit var someMock: SomeClassToBeMocked @InjectMocks private lateinit var subject: Subject @Test fun shouldAssertSomething() { val foo = Foo() // from Foo.kt val bar = Bar() // from Bar.java from *another module* whenever(someMock.map(foo)).thenReturn(bar) // breakpoint[1] subject.myMethod(foo) verify(someMock).map(foo) } 这种模式在代码的其他部分工作,但不是在这个特定的测试中,我得到以下错误信息: org.mockito.exceptions.misusing.MissingMethodInvocationException: when() […]