kotlin相关内容
我正在尝试使用经过改型和杰克逊反序列化的API.标题为“没有创建者,就像默认构造一样,存在)中出现的错误:无法从对象值反序列化(没有基于委托人或基于属性的创建者"出现在onFailure中. 这是我要提取的JSON: { "data": { "repsol_id": "1129", "name": "ES-MASSAMÁ", "l
..
我只是想了解基础架构,我认为我错了. 以教程此处为例. 当我这样做时: kotlinc-jvm hello.kt -include-runtime -d hello.jar 如果编译器已将代码转换为Java字节码,为什么需要将Kotlin运行时捆绑到jar中? 解决方案 使用Java编写应用程序时,您将依赖于所有标准类库.每个JRE都包含java.类(例如java.l
..
如何在Kotlin的本地时间获取当前日期(月,年,日)和时间(时,分,秒)? 我尝试了LocalDateTime.now(),但它给我一个错误,提示Call requires API Level 26 (curr min is 21). 如何在Kotlin中获取时间和日期? 解决方案 您还可以选择导入并使用Joda-Time或 Android分支之一.
..
我已经创建了一个方法,并且在MyClass类中返回值为Result,但是错误消息为'kotlin.Result'不能用作返回类型 我也研究了Result源代码中的一些提示.为什么会这样? 测试代码(使用1.3-RC版). class MyClass(val r:R){ fun f():Result{ // error here re
..
我需要创建一个可处理此类网络呼叫的改造呼叫适配器: @GET("user") suspend fun getUser(): MyResponseWrapper 我希望它与Kotlin Coroutines一起使用而不使用Deferred.我已经有一个使用Deferred的成功实现,它可以处理诸如以下的方法: @GET("user") fun getUser(): Def
..
我正在尝试创建我的应用程序组件,但是Dagger不会生成我的应用程序组件. 这是 MyApplication 类 class MyApplication : Application() { companion object { @JvmStatic lateinit var graph: ApplicationComponent } @Inject lateinit var loc
..
我很好奇在Kotlin中定义成员函数的建议方法是什么.考虑以下两个成员函数: class A { fun f(x: Int) = 42 val g = fun(x: Int) = 42 } 这些似乎可以完成相同的任务,但是我发现了细微的差别. 例如,基于val的定义在某些情况下似乎更灵活.也就是说,我无法找到一种直接的方法来将f与其他功能组合在一起,但是我可以与g组合
..
问题就这么简单. Kotlin文档仅在访问Java和枚举类中描述克隆.在后一种情况下,克隆只是引发异常. 那么,我/应该如何克隆任意的Kotlin对象? 我应该像在Java中那样使用clone()吗? 解决方案 对于data class,您可以使用编译器生成的要创建集合的副本,请使用toList()或toSet()方法,具体取决于所需的集合类型.这些方法总是创建一个新的集
..
我正在写一小段代码,在其中我内部在一个可变映射中处理我的数据,而可变映射又具有可变列表. 我想将数据公开给API用户,但是为了避免任何不安全的数据发布,我希望将其公开在不可变的集合中,即使在内部由可变的集合处理时也是如此. class School { val roster: MutableMap> = mutableMapO
..
我正在定义一些用作回调的函数,但并非所有函数都使用其所有参数. 如何标记未使用的参数,以便编译器不会向我发出有关它们的警告? 解决方案 带有@Suppress批注您可以禁止对任何声明或表达式进行任何诊断. 示例: 禁止显示参数警告: fun foo(a: Int, @Suppress("UNUSED_PARAMETER") b: Int) = a 禁止声明中的所有UN
..
编译时出现上述错误.我的gradle文件如下:- apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 23 buildToolsVersion "
..
当我尝试使用okhttp或javax.ws.rs.client.Client时,发生以下错误 java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl.(Lsun/security/ssl/ProtocolVersion; Lsun/security/ssl/CipherSuite; Ljava/util/Collection;
..
假设我们具有以下暂停功能: suspend fun doSomething(): List { ... } 如果要在我现有的Java类之一中调用此函数(暂时无法将其转换为Kotlin)并获取其返回值,则必须提供Continuation>作为其参数(很明显) . 我的问题是,我该如何实施.特别是它的getContext吸气
..
我目前正在与Kotlin一起在1.1.1版中开发Android应用程序 在我的代码中,我具有多个forEach结构的含义,以便读取多个MutableList和MutableMap. 不幸的是,我的应用程序崩溃并显示以下堆栈跟踪: java.lang.NoClassDefFoundError: com.package.fragment.ReminderAddFragment $ o
..
可能有一个广泛的问题,但官方文档甚至没有提到箭头运算符(或语言构造,我不知道哪个短语更准确)作为独立实体. 最明显的用途是when条件语句,该语句用于将表达式分配给特定条件: val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!"
..
在Kotlin中编写扩展方法很容易: class A { } class B { fun A.newFunction() { ... } } 但是有什么方法可以创建扩展变量?喜欢: class B { var A.someCounter: Int = 0 } 解决方案 否-文档对此进行解释: 扩展实际上并不修改它们扩展的类.通过定义扩展,您无需在类中插入
..
Firebase的snapshot.getValue()预计如下调用: snapshot?.getValue(Person::class.java) 但是我想用通过类声明(即 )传递给类的通用参数代替Person. class DataQuery 并使用该通用参数执行以下操作: snapshot?.getValue(T::class.java)
..
是否有任何简单的方法或任何标准库方法通过属性名称将Kotlin数据类对象转换为其属性的地图/字典?可以避免反射吗? 解决方案 我使用的是jackson方法,但是对于第一次序列化(但是您可以使用Gson更快地完成此操作.双向转换如下所示: val gson = Gson() //convert a data class to a map fun T.serializeToMa
..
RecyclerView项的高度未固定,我需要为每个项设置背景图像,所以我想获取recyclerview项的高度以调整图像大小,但是itemView.getHeight()总是在onBindViewHolder中返回0. 我尝试搜索许多问题或文章,但仍然无法获得很好的解决方案. 解决方案 短 手动测量视图 view.measure( View.M
..
我们一直在讨论这个问题,但我们不知道创建视图模型工厂来创建视图模型而不是直接实例化视图模型的原因.创建仅创建视图模型的工厂有什么好处? 我只是举了一个简单的示例,说明了我如何在没有工厂的情况下做到这一点 这是kodein模块: val heroesRepositoryModel = Kodein { bind() with single
..