草庐IT

Kotlin-script

全部标签

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

python - 测量命令 : measure python script execution time

我发现我可以用这个命令测量Windows上的执行时间:Measure-Command{start-processpython.\script.py-Wait}而且效果很好。不幸的是,当我尝试运行一个带有一些(位置和可选)参数的脚本时,我收到一条错误消息,带有Measure-Command{start-processpython.\script.pyfile.txt100-Wait}我得到错误:Start-Process:Apositionalparametercannotbefoundthatacceptsargument'file.txt'.没有Measure-Command一切正常

Kotlin 类型的安全构建器 DSL,最外层功能的安全性

我将使用officialexample来自为某些HTML创建实现DSL的文档。从Kotlin1.1开始,@DslMarker注释允许我们限制类中函数的范围,就像示例中的@HtmlTagMarker注释一样。当我们尝试编写这样的结构不正确的代码时,这会给我们一个错误:html{body{body{//thisinanerror,asit'safunctioncallontheoutsideHtmlelement}}}但是,这并不妨碍嵌套最外层的函数,它是DSL的入口点。例如,以现在的示例为例,可以毫无问题地写下来:html{html{}}在这方面有什么方法可以让DSL更安全?

Kotlin 类型的安全构建器 DSL,最外层功能的安全性

我将使用officialexample来自为某些HTML创建实现DSL的文档。从Kotlin1.1开始,@DslMarker注释允许我们限制类中函数的范围,就像示例中的@HtmlTagMarker注释一样。当我们尝试编写这样的结构不正确的代码时,这会给我们一个错误:html{body{body{//thisinanerror,asit'safunctioncallontheoutsideHtmlelement}}}但是,这并不妨碍嵌套最外层的函数,它是DSL的入口点。例如,以现在的示例为例,可以毫无问题地写下来:html{html{}}在这方面有什么方法可以让DSL更安全?

android - 由于包含使用不受支持的插件版本的 Kotlin 模块,因此不支持新的 Gradle Sync

我使用的是androidstudio3.4.1,我的Kotlin版本是1.3.31。我有一个flutter应用程序。尝试将cloud_firestore添加到我的应用程序时,出现以下问题。我的androidstudioKotlin版本和build.gradle完全一样。有什么建议吗?这是我的buld.gradle:buildscript{ext.kotlin_version='1.3.31'repositories{google()jcenter()}dependencies{classpath'com.android.tools.build:gradle:3.4.1'classpat

android - 由于包含使用不受支持的插件版本的 Kotlin 模块,因此不支持新的 Gradle Sync

我使用的是androidstudio3.4.1,我的Kotlin版本是1.3.31。我有一个flutter应用程序。尝试将cloud_firestore添加到我的应用程序时,出现以下问题。我的androidstudioKotlin版本和build.gradle完全一样。有什么建议吗?这是我的buld.gradle:buildscript{ext.kotlin_version='1.3.31'repositories{google()jcenter()}dependencies{classpath'com.android.tools.build:gradle:3.4.1'classpat

annotations - Kotlin - 如何获取注释属性值

说,我有一个带注释的Kotlin类:@Entity@Table(name="user")dataclassUser(valid:Long,valname:String)如何从@Table注解中获取name属性的值?funtableName(c:KClass):String{//icangetthe@Tableannotationlikethis:valt=c.annotations.find{it.annotationClass==Table::class}//buthowcanigetthevalueof"name"attributefromt?} 最佳答

annotations - Kotlin - 如何获取注释属性值

说,我有一个带注释的Kotlin类:@Entity@Table(name="user")dataclassUser(valid:Long,valname:String)如何从@Table注解中获取name属性的值?funtableName(c:KClass):String{//icangetthe@Tableannotationlikethis:valt=c.annotations.find{it.annotationClass==Table::class}//buthowcanigetthevalueof"name"attributefromt?} 最佳答

generics - 如何解决 Kotlin 中违反有限界限制的问题?

这个问题在这里已经有了答案:Crossreferencesintypeparameters(2个回答)关闭5年前。假设我在Java中有这个声明,没关系。abstractclassStart{publicTend;}abstractclassEnd{publicTstart;}但是,在Kotlin中不行,因为Kotlin对“循环”类型参数有限制。abstractclassStart>{lateinitvarend:T}abstractclassEnd>{lateinitvarstart:T}在Kotlin中是否有任何方法可以解决这个问题,以便我可以拥有相互依赖的泛型类型?