Tag: kotlin interop

Kotlin文件不能使用R.java

我在适当的资源文件夹中创建了一个新的布局文件。 同步后,当我尝试引用布局文件,即R.layout.activity_test时,R是一个“未解决的符号”。 当我试图建立在它失败。 有趣的是,如果我手动导入R文件并在代码中使用它,当我尝试在命令行上构建时,它将起作用。 另一件事是当我尝试使用R在Java文件中访问布局文件时,也可以。 所以我知道R.java正在生成。 我试图创建一个全新的项目,R可以在Kotlin文件中访问。 这里有什么问题? 我已经尝试过的事情: 清理然后建立 无效的缓存/重新启动 吹走。格式化文件夹并重新创建索引 其他信息: AS v3.0.1 试了Kotlin v1.1.2-4和v1.1.60 Gradle v4.2.1 Gradle插件v3.0.0

如何在Kotlin中使用get()定义类的types属性

如何在Kotlin中使用get()来定义一个属性,它返回一个类,我在下面尝试,但不是编译 val targetActivity: Class get() = MyActivity.class

Java lambdatypes推断在Kotlin中没有像预期的那样工作

为什么在没有Collectors.toList()的显式types参数的情况下,这段Java代码不能在Kotlin中编译? 有没有更习惯的方式来做到这一点? // works List folders = Files.walk(Paths.get(args[0])) .filter(it -> it.toFile().isDirectory()) .map(it -> it.toAbsolutePath().toString()) .collect(Collectors.toList()); // does not compile – resulting type is `MutableList..List?` which is not compatible to `List` val folders: List = Files.walk(Paths.get(args[0])) .filter { it.toFile().isDirectory } .map { it.toAbsolutePath().toString() } .collect(Collectors.toList()) // compiles val folders: List = Files.walk(Paths.get(args[0])) .filter { it.toFile().isDirectory } […]

在Kotlin for Android中编写库是否有开销?

我正在考虑将Java(Android)库移植到Kotlin。 我真的很喜欢Kotlin,而Java的好处是可以减少库中的bug数量。 由于图书馆的目标是资源受限的环境,我担心将图书馆移植到Kotlin会带来额外的开销。 Kotlin库(分发为.class文件)是否引入了与Java库相比的运行时间或额外开销? 由于Kotlin,最终的Android应用程序会变得更大还是更慢?

kotlin – 平台types/方法的非null标记

我经常使用UUID.randomUUID() 。 由kotlin推断的types是UUID! 。 有没有什么办法告诉kotlin这种特定方法的返回types是UUID ,并且始终为非null? 或者我必须做到处都UUID.randomUUID()!! 或者实施我自己的方法?

调用java中java关键字的kotlin函数?

由于new不是kotlin中的关键字,我可以在kotlin中具有以下function。 fun new(): String { return “just returns some string” } 但是我无法从java调用这个函数,因为new是java中的一个关键字。 我想知道在java领域是否有这个函数的别名。 我没有find任何可能是这个函数的别名的intellij建议。 编辑1 : 我已经在kotlin中编写了下面的代码: fun new(): String { return “just returns some string” } fun main(args:Array){ new() } 我看了一下java字节码。 这是如下。 // ================MainKt.class ================= // class version 50.0 (50) // access flags 0x31 public final class MainKt { // access flags 0x19 public […]

如何在Kotlin / Native中使用SQLite?

对于多平台项目,我考虑Kotlin / Native ,希望至少有一个通用的代码库用于业务逻辑和数据保存。 为了保存数据,我想使用像SQLite这样的数据库。 但是,根据另一个stackoverflow线程 ,如果我想编译到Kotlin / Native,我不能使用任何Java文件。 如果我正确理解这一点,这也意味着我所包含的任何SQLite库都不允许从Java导入。 在搜索这样一个图书馆,我发现了两个有趣的数据库项目由Jetbrain,即安科SQLite和暴露 。 但是,在挖掘他们的源代码的时候,在写这篇文章的时候都是从Java(例如java.sql)导入的。 这可能意味着我不能使用它们。 我有一个想法是使用基于c的sqlite库,因为根据提到的线程 ,Kotlin / Native代码被允许使用c库。 这可能是可能的,但我想知道是否没有建议更多Kotlin喜欢在Kotlin / Native中使用SQLite或其他数据库的方式?

Kotlin构造函数委托给内部数据类?

我们有一个抽象的Java类(我们不能修改)叫做AbstractClass ,我们要在Kotlin中实现。 一个要求是Kotlin实现是使用vanilla Jackson Databind对JSON进行序列化/反序列化的。 这导致我们执行以下操作: class MyClass(private val data: MyClassData? = null) : AbstractClass(MyClass::class.java, “1”) { data class MyClassData(var name: String = “”, var age: Int = 0) : AbstractData override fun getData(): MyClassData? { return data } } 这个类将始终从Java中使用,目前您可以像这样(Java)实例化它: MyClass myClass = new MyClass(new MyClassData(“John Doe”, 25)); 但是我们宁愿像这样实例化它: MyClass myClass = new MyClass(“John […]

Kotlin:将数组转换为Java可变参数

如何将我的Kotlin Array转换为可变参数Java String[] ? val angularRoutings = arrayOf(“/language”, “/home”) // this doesn’t work web.ignoring().antMatchers(angularRoutings) 如何将ArrayList传递给可变参数方法参数?

kotlin:2个lambda参数的语法

我是新来的kotlin。 我有一个与2重载的方法的Java类。 一个接受一个function,另一个接受两个function mapToEntry(Function valueMapper) 和 mapToEntry(Function keyMapper, Function valueMapper) nowm in kotlin,我试图调用与2参数的版本(如在Java中): myClass.mapToEntry(r -> r, r -> r) 但我得到编译错误。 Kotlin:意外的令牌(使用’;’来分隔同一行上的expression式) 什么是正确的语法?