Kotlin无效检查错误

我使用Java库。 在异常类中有“localizedMessage”字段和“描述”字段。 我不知道为什么,但是“描述”(即java String)被识别为String! 通过Kotlin,当“description”为null时,条件描述== null返回false。 代码示例: mvpView?.showToast(it.description?:it.localizedMessage) 或没有猫王: if (it.description.isNullOrBlank()) { mvpView?.showToast(it.localizedMessage) } else { mvpView?.showToast(it.description) } 它总是试图显示“描述”,但在调试模式下的“评估表达式”在描述== null(按预期)返回true。 Kotlin版本是1.1.1

Kotlin检查了例外情况

由于Kotlin不支持检查异常,所以如何让程序员意识到一个方法可能会抛出异常 简单的例子: class Calculator (value: Int = 0) { fun divide (dividend: BigDecimal, divider: BigDecimal) : BigDecimal { return dividend / divider } } 显然,除法方法可能会抛出java.lang.ArithmeticException: Division by zero异常,并且库的创建者需要警告类的用户将调用置于try-catch子句中 Kotlin的这种意识的机制是什么?

限制在Kotlin中的功能

Java 8中有一个流方法的limit : package com.concretepage.util.stream; import java.util.Arrays; import java.util.List; public class LimitDemo { public static void main(String[] args) { List<String> list = Arrays.asList("AA","BB","CC","DD","EE"); list.stream().limit(3).forEach(s->System.out.println(s)); } } 输出: AA BB CC Kotlin中的模拟名称是什么,或者如何以另一种方式做得更好?

java.util.HashMap是否没有在Kotlin中实现java.util.Map?

我无法理解为什么Java HashMap与Kotlin中的Java Map不兼容: val map : java.util.Map<Int, Int> = java.util.HashMap<Int, Int>() // ERROR: Type mismatch 这是一个错误还是故意强制执行是Kotlin错误? 这是Java to Kotlin编译器的第二个例子。 看看这个Java示例文件: public class Test { public static void main(String[] args) { java.util.Map<Integer, Integer> map = new java.util.HashMap<>(); insertValue(map); } private static void insertValue(java.util.Map<Integer, Integer> map) { map.putIfAbsent(0, 1); } } 运行“转换Java到Kotlin”结果在这个文件中: object Test { @JvmStatic fun […]

如何在Android中添加对普通Java Lib的Kotlin支持?

当我们想在Android Studio中使用Kotlin时,它非常简单。 添加kotlin依赖库,并添加如下Kotlin-Android插件 apply plugin: 'com.android.library' apply plugin: 'kotlin-android' 但是,如果我有一个正常的库(以前是Java),并且想要在Kotlin中编写,我应该添加任何插件吗? 以下绝对不能工作。 apply plugin: 'java-library' apply plugin: 'kotlin-android' 没有“kotlin库”,我发现添加。我应该添加到我的模块gradle让它能够编译Kotlin?

Kotlin JS项目的基本Gradle脚本Kotlin文件是什么样的?

我正在尝试使用Kotlin-DSL在Kotlin中编写一个Gradle构建脚本。 到目前为止,我已经看到了关于如何为Java项目完成的例子。 然而,因为我正在Kotlin开发一个React Native应用程序,所以没有任何教程可以用来制作Kotlin / JavaScript项目。 那么为了这个目的,一个基本的 Gradle脚本Kotlin文件是什么样的?

在ViewHolder中使用kotlin-android-extensions

class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindata(text: SingleText){ itemView.title.text = text.title itemView.desc.text = text.desc } } 像这样的代码,Kotlin在android扩展中有任何缓存? 当我反编译Kotlin字节码 public final void bindata(@NotNull SingleText text) { Intrinsics.checkParameterIsNotNull(text, "text"); ((AppCompatTextView)this.itemView.findViewById(id.title)).setText((CharSequence)text.getTitle()); ((AppCompatTextView)this.itemView.findViewById(id.desc)).setText((CharSequence)text.getDesc()); } 这意味着当我在Adapter.onBindViewHolder()中调用binData时,它会每次调用findViewById 这大大增加了性能的损失,并没有达到布局重用的目的 Kotlin在ViewHolder的android扩展中有任何缓存逻辑?

有没有办法从一个普通的Kotlin类中识别一个Kotlin数据类?

有没有办法从一个普通的Kotlin类中识别一个Kotlin数据类? 像使用反射也许?

Kotlin静态方法和变量

我想能够保存一个类的实例公共静态变量,但我不知道如何在Kotlin做到这一点。 class Foo { public static Foo instance; public Foo() { instance = this; } }

无法配置Kotlin

我无法在我的android studio中配置Kotlin。 出现错误错误:无法找到method'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava / util / List;'。