kotlin相关内容

没有创建者,例如默认构造,不存在:无法从对象值反序列化(没有基于委托或基于属性的创建者

我正在尝试使用经过改型和杰克逊反序列化的API.标题为“没有创建者,就像默认构造一样,存在)中出现的错误:无法从对象值反序列化(没有基于委托人或基于属性的创建者"出现在onFailure中. 这是我要提取的JSON: { "data": { "repsol_id": "1129", "name": "ES-MASSAMÁ", "l ..
发布时间:2020-04-26 11:51:48 移动开发

为什么Kotlin编译后需要捆绑其运行时?

我只是想了解基础架构,我认为我错了. 以教程此处为例. 当我这样做时: kotlinc-jvm hello.kt -include-runtime -d hello.jar 如果编译器已将代码转换为Java字节码,为什么需要将Kotlin运行时捆绑到jar中? 解决方案 使用Java编写应用程序时,您将依赖于所有标准类库.每个JRE都包含java.类(例如java.l ..
发布时间:2020-04-26 11:51:44 其他开发

如何获得科特林的当前本地日期和时间

如何在Kotlin的本地时间获取当前日期(月,年,日)和时间(时,分,秒)? 我尝试了LocalDateTime.now(),但它给我一个错误,提示Call requires API Level 26 (curr min is 21). 如何在Kotlin中获取时间和日期? 解决方案 您还可以选择导入并使用Joda-Time或 Android分支之一. ..
发布时间:2020-04-26 11:51:40 移动开发

函数定义:fun vs val

我很好奇在Kotlin中定义成员函数的建议方法是什么.考虑以下两个成员函数: class A { fun f(x: Int) = 42 val g = fun(x: Int) = 42 } 这些似乎可以完成相同的任务,但是我发现了细微的差别. 例如,基于val的定义在某些情况下似乎更灵活.也就是说,我无法找到一种直接的方法来将f与其他功能组合在一起,但是我可以与g组合 ..
发布时间:2020-04-26 11:51:31 其他开发

如何在Kotlin中克隆对象?

问题就这么简单. Kotlin文档仅在访问Java和枚举类中描述克隆.在后一种情况下,克隆只是引发异常. 那么,我/应该如何克隆任意的Kotlin对象? 我应该像在Java中那样使用clone()吗? 解决方案 对于data class,您可以使用编译器生成的要创建集合的副本,请使用toList()或toSet()方法,具体取决于所需的集合类型.这些方法总是创建一个新的集 ..
发布时间:2020-04-26 11:51:26 其他开发

如何将可变集合变成不可变集合

我正在写一小段代码,在其中我内部在一个可变映射中处理我的数据,而可变映射又具有可变列表. 我想将数据公开给API用户,但是为了避免任何不安全的数据发布,我希望将其公开在不可变的集合中,即使在内部由可变的集合处理时也是如此. class School { val roster: MutableMap> = mutableMapO ..
发布时间:2020-04-26 11:51:24 其他开发

在Kotlin中标记未使用的参数

我正在定义一些用作回调的函数,但并非所有函数都使用其所有参数. 如何标记未使用的参数,以便编译器不会向我发出有关它们的警告? 解决方案 带有@Suppress批注您可以禁止对任何声明或表达式进行任何诊断. 示例: 禁止显示参数警告: fun foo(a: Int, @Suppress("UNUSED_PARAMETER") b: Int) = a 禁止声明中的所有UN ..
发布时间:2020-04-26 11:51:22 其他开发

在Java类中调用Kotlin暂停函数

假设我们具有以下暂停功能: suspend fun doSomething(): List { ... } 如果要在我现有的Java类之一中调用此函数(暂时无法将其转换为Kotlin)并获取其返回值,则必须提供Continuation>作为其参数(很明显) . 我的问题是,我该如何实施.特别是它的getContext吸气 ..
发布时间:2020-04-26 11:51:13 Java开发

箭头(“->")运算符在Kotlin中做什么?

可能有一个广泛的问题,但官方文档甚至没有提到箭头运算符(或语言构造,我不知道哪个短语更准确)作为独立实体. 最明显的用途是when条件语句,该语句用于将表达式分配给特定条件: val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!" ..
发布时间:2020-04-26 11:51:07 其他开发

Kotlin中的扩展字段

在Kotlin中编写扩展方法很容易: class A { } class B { fun A.newFunction() { ... } } 但是有什么方法可以创建扩展变量?喜欢: class B { var A.someCounter: Int = 0 } 解决方案 否-文档对此进行解释: 扩展实际上并不修改它们扩展的类.通过定义扩展,您无需在类中插入 ..
发布时间:2020-04-26 11:51:05 其他开发

如何在Kotlin中获取通用参数类

Firebase的snapshot.getValue()预计如下调用: snapshot?.getValue(Person::class.java) 但是我想用通过类声明(即 )传递给类的通用参数代替Person. class DataQuery 并使用该通用参数执行以下操作: snapshot?.getValue(T::class.java) ..
发布时间:2020-04-26 11:51:01 其他开发

如何将Kotlin数据类对象转换为地图?

是否有任何简单的方法或任何标准库方法通过属性名称将Kotlin数据类对象转换为其属性的地图/字典?可以避免反射吗? 解决方案 我使用的是jackson方法,但是对于第一次序列化(但是您可以使用Gson更快地完成此操作.双向转换如下所示: val gson = Gson() //convert a data class to a map fun T.serializeToMa ..
发布时间:2020-04-26 11:50:59 其他开发

为什么在Android中需要viewmodel工厂?

我们一直在讨论这个问题,但我们不知道创建视图模型工厂来创建视图模型而不是直接实例化视图模型的原因.创建仅创建视图模型的工厂有什么好处? 我只是举了一个简单的示例,说明了我如何在没有工厂的情况下做到这一点 这是kodein模块: val heroesRepositoryModel = Kodein { bind() with single ..
发布时间:2020-04-26 11:50:54 移动开发