我无法运行我的javafx – kotlin应用程序。 我的入门级 class Starter : Application() { override fun start(primaryStage: Stage?) { val root : Parent = FXMLLoader.load(javaClass.getResource(“view/main.fxml”)) primaryStage?.title = “Title” primaryStage?.scene = Scene(root) primaryStage?.show() } fun main(args: Array) { launch(args) } } 我不能将参数“参数”传递给“启动”方法,因为编译器说: 错误:(19,9)Kotlin:以下函数都不能用所提供的参数调用:public open fun launch(p0:Class !, vararg p1:String!):javafx.application.Application中定义的单位public open fun启动(vararg p0:String!):在javafx.application.Application中定义的单位 如果我试图调用“启动”方法没有参数我有以下例外 exception在线程“main”java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43)at sun.launcher.LauncherHelper […]
我在Kotlin中有一个方法,它返回一个通用列表的Rx Observable: public fun getObservable(): Observable<List> { return Observable.just(theList) } 因为Kotlin列表特征定义为List ,所以Java会将返回types看作Observable<List> Observable<List> 。 有没有办法告诉Kotlin编译器,Java应该将这个视为Observable<List> ? http://kotlinlang.org/docs/reference/generics.html 已更新为正确显示问题。
是否有关于Java 8function的最新概述,这些function在Kotlin中尚不受支持? 例如,调用像Map#putIfAbsent这样的默认方法无法编译(不支持的引用错误): import java.util.* fun main(args: Array) { val x : Map = HashMap() x.putIfAbsent(1, 2) } 如果默认方法被覆盖,它将起作用: import java.util.* fun main(args: Array) { val x : HashMap = HashMap() x.putIfAbsent(1, 2) } 这就是我通过实验发现的结果,但是对于决定是否已经可以从Java 8代码迁移到Kotlin,系统性的概述将是有价值的。 更新:我的例子中的代码是由“Java to Kotlin”转换器创建的。 正如user2235698指出的那样, Map是一个不可变的Kotlin映射。 不过,当我将其更改为java.util.Map映射时,该示例无法编译。 然而,我声称它必须用默认的方法做一些事情,这是误导性的。 由于它超出了这个问题的范围,所以我在这里打开了一个后续问题: java.util.HashMap是否不在Kotlin中实现java.util.Map?
在Java中: for(int j = 0; j < 6 && j < ((int)abc[j] & 0xff); j++) { // … } 我们如何能在Kotlin中实现这个循环?
在阅读Kotlin to JavaScript教程时,我只是想知道使用Kotlin编写JavaScript代码有什么好处? 除此之外,已经有很多用于Javascript开发的工具,比如包管理器,Webpack,Gulp …
Kotlin corutines是有限状态机和一些任务运行器(例如,默认的ForkJoinPool)的糖。 https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md#implementation-details 换句话说,在java / kotlin运行时中没有运行时协程(但是这可以通过http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html改变)。 Kotlin协同程序只是顺序执行的任务,逐个执行。 每个任务都可以在线程池中的任何线程中执行。 Go运行时支持“协同程序”。 但是goroutines不是真正的协程。 Goroutines不允许在程序中设置收益点。 另外,Go不允许设置自定义线程池。 您只能在默认池中设置线程的大小。 kotlin协程和goroutines之间的第一个区别是Go运行时管理此时正在运行的协程。 当某个IO操作(或同步原语)阻塞了goroutine时,选择下一个Job来执行它。 在JVM中,这种条件下没有智能的工作转换。 因此,Go可以便宜地更改当前正在运行的工作。 Go只需要更改一些registryhttps://groups.google.com/forum/#!msg/golang-nuts/j51G7ieoKh4/wxNaKkFEfvcJ 。 但有人说,JVM可以使用堆栈线程而不是使用寄存器。 所以根本没有保存和加载寄存器。 kotlin协程和goroutines之间的第二个区别是协程types。 Kotlin协程是无堆栈协程。 Goroutines是堆栈协程。 Kotlin协程的所有状态都存储在Kotlin上下文中,并存储在堆中。 Goroutines状态存储在寄存器和线程堆栈中。 我想知道哪些协程(goroutines和kotlin协程)在IO绑定任务中更快? CPU绑定任务? 内存消耗如何?
我想分配ByteArray在Kotlin的Bye,我只是不知道分配一个字节的语法。 例如在c中,如果我想分配一个字符,我会做: char c = ‘a’; 但是,在Kotlin语言中,在字节typesvariables中分配一个字节的语法是什么? 我只是找不到一个例子,假设我想分配数组[i]中的字节E0,我该如何做? 非常感谢你<3
我正在学习Kotlin。 在此之前,我曾与Java的Android开发工作。 Kotlin是一门伟大的语言学习。 我在使用setOnClickListener(View.OnClickListener) 。 我已经看到了Android Studio的两个提示。 我知道如何工作或定义他们两个。 实现OnClickListerner的第一种方法 send_button.setOnClickListener(object : View.OnClickListener{ override fun onClick(p0: View?) { TODO(“not implemented”) //To change body of created functions use File | Settings | File Templates. } }) 这是实现OnClickListener的第二种方式 send_button.setOnClickListener { TODO(“not implemented”) //To change body of created functions use File | Settings | File Templates. } 据我所知,第二种方法是基于lambda的。 但是我不能正确理解这些方法。 […]
如何在Kotlin中部分委托方法/字段? 具体来说:我在这里试图从接口TraitAinheritance类User ,并在包装器StateA实现marked: Boolean的StateA 。 这将清理User实现,因为marked只是一个状态字段。 请注意, TraitA不能是一个类,因为我想使用几个这样的接口: User() : TraitA by StateA, TraitB by StateB, .. /* does not compile (Kotlin M12) */ interface TraitA { var marked: Boolean fun doStaffWithMarked() // must be overridable } class StateA() : TraitA { override var marked = false } class User() : TraitA by StateA(){ override […]
一些基本的事实导致我这个问题: Groovy具有完整的Java互操作性 Kotlin具有完整的Java互操作性 Kotlin也编译到Java 因此可以在Grails应用程序中编写Kotlin代码吗? 我在Grails 2.x上做了很多工作,最近在和Kotlin,Spring和Struts一起工作。 我真的很喜欢Kotlin的null-safety和type推理function,而Kotlin的function编程特性比Groovy更自然,更易于使用(最后一部分是纯粹的意见)。 是否有可能使用Grails来处理这样的事情: ORM 将请求映射到控制器/操作 JSP / GSP视图解析/呈现 而是使用Kotlin来编写域类,控制器动作,服务,对象工厂等的实际逻辑。 可能不太可能,因为我猜测Grails的一些核心function是通过动态输入实现的,但也许可以通过Gradle插件或直接的Grails插件来实现。 我喜欢Grails的convention-over-configuration范例提供的极端简单,但是我更喜欢Kotlin的静态types和types推断。 如果我可以在Grails环境中编写Kotlin的业务逻辑,对我来说,这将是最终的Web应用程序框架!