Tag: Java

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的这种意识的机制是什么?

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 […]

Java到Kotlin泛型翻译

我想转移到Kotlin旧的Java项目,并发现有趣的,不能没有痛苦地转换这Kotlin public interface BaseJView<P extends BaseJPresenter> { P createPresenter(); } public interface BaseJPresenter<V extends BaseJView> { void bindView(V view); } 你能提供意见,我怎么能做到这一点?

Kotlin提供任何性能提升?

科特林提供任何性能提升? 有没有基准? Kotlin比Java快吗? 我在Kotlin网站上找到了这个。 https://kotlinlang.org/docs/reference/comparison-to-java.html谈论语言功能,但不是性能。

Java Lambda到Kotlin

我正在用Kotlin构建我的代码。 我已经偶然发现了一个在Kotlin中使用Lambda的问题,具体如下: Java代码: ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true)); 使用通用接口实例 ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(new UndertowBuilderCustomizer() { @Override public void customize(Builder builder) { builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true); } }); 我在Kotlin的代码 val c: UndertowEmbeddedServletContainerFactory = (container as UndertowEmbeddedServletContainerFactory) // Calling the Lambda c.addBuilderCustomizers{ (b: Builder) -> b.setServerOption(UndertowOptions.ENABLE_HTTP2, true) } 这给我一个语法错误: 在这一行有多个标记 – 只允许将值作为可变参数传递在括号内的参数列表中 – 不能推断出这个参数的类型。 请明确指定。 什么可能是正确的语法呢?

平等在Kotlin

我正在学习Kotlin,拥有C ++和Java背景。 我期待以下打印true ,而不是false 。 我知道==映射到equals 。 equals的默认实现是否不比较每个成员,即firstName和lastName ? 如果是这样,它不会看到字符串值相等(因为==地图再次equal )? 显然有一些与平等与身份相关的东西,我还没有在科特林的权利。 class MyPerson(val firstName: String, val lastName: String) fun main(args: Array<String>) { println(MyPerson("Charlie", "Parker") == MyPerson("Charlie", "Parker")) }

Kotlin配置几个口味

我得到了我的项目配置几个口味的问题。 我有2个env-s,用于分期制作。 它的配置设置为flavor-stage/Env.java和flavor-prod/Env.java ,它的工作原理与Java代码一样,也可以从Kotlin类中看到,但是在编译时会崩溃 Error:(19, 23) Unresolved reference: Env 看来Kotlin可以从另一个风格的文件夹中解析类。 请帮助配置它。 我的gradle.build是: sourceSets { main.java.srcDirs += 'src/main/kotlin' } buildscript { ext.kotlin_version = '1.0.4' repositories { jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.6" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } }

如何在Kotlin中声明原始类型?

在Java中,我可以声明这一点 private List a; //onCreate a = new ArrayList() 但在Kotlin它显示错误,这迫使我具体的类型 private List<String> a 有时我不想提供一个类型(我不需要),但它显示Kotlin中的错误例如在Java中 public abstract class BaseActivity<T extends ViewDataBinding> extends AppCompatActivity { //something } public abstract class BaseFragment { private BaseActivity activity; //something } //in kotkin I can't write lateinit var activity: BaseAtivity //show error here (I have to specific a type but this […]

Kotlin访问修饰符

我试图学习Kotlin,并且遇到了关于访问修饰符的困惑,与Java相比,Kotlin具有私有,公共,内部和受保护的访问修饰符, 那么内部与包相同吗? 一个小例子: package A private fun foo() {} // visible inside example.kt public var bar: Int = 5 // property is visible everywhere private set // setter is visible only in example.kt internal val baz = 6 // visible inside the same module

从Java到Kotlin

我正在努力将用Java编写的简单的JavaFX calc转换成Kotlin代码。 https://gist.github.com/jewelsea/4344564 – > java源码。 我在Kotlin翻译的是: import Model.Math import javafx.application.Application import javafx.beans.binding.Bindings import javafx.beans.property.* import javafx.event.ActionEvent import javafx.event.EventHandler import javafx.geometry.Pos import javafx.scene.Scene import javafx.scene.control.* import javafx.scene.input.KeyEvent import javafx.scene.layout.* import javafx.stage.Stage import javafx.stage.StageStyle import java.util.HashMap // A simple Kotlin, JavaFX application class KotlinCode : Application() { private val accelerators = HashMap<String, Button>() private val stackValue […]