草庐IT

Kotlin-script

全部标签

java - Kotlin 将类型函数具体化为函数扩展 - 可从 Java 调用?

我正在尝试使用具有reified类型的函数作为扩展函数,但我认为这是不可能的,因为在检查生成的字节码后,我发现方法签名是私有(private)的,任何解决方法都可以使其公开?CommonExtensions.ktinlinefunContext.startActivity(){valintent=Intent(this,T::class.java)startActivity(intent)}funView.visible(){visibility=View.VISIBLE}Kotlin字节码:privatefinalstaticstartActivity(Landroid/conten

kotlin - 如何在 Kotlin 中制作编译时间常数 NaN 或 POSITIVE_INFINITY?

我试过了:importkotlin.Double.Companion.POSITIVE_INFINITYimportkotlin.Double.Companion.NaNconstvalinf=POSITIVE_INFINITYconstvalnan=NaN但我明白了:Const'val'initializershouldbeaconstantvalue编辑:我需要这样做的原因是Junit5'sparametrizedtests:@ParameterizedTest@ValueSource(doubles=doubleArrayOf(nan,inf,-2*epsilon,1.5,-0.

kotlin - 如何在 Kotlin 中制作编译时间常数 NaN 或 POSITIVE_INFINITY?

我试过了:importkotlin.Double.Companion.POSITIVE_INFINITYimportkotlin.Double.Companion.NaNconstvalinf=POSITIVE_INFINITYconstvalnan=NaN但我明白了:Const'val'initializershouldbeaconstantvalue编辑:我需要这样做的原因是Junit5'sparametrizedtests:@ParameterizedTest@ValueSource(doubles=doubleArrayOf(nan,inf,-2*epsilon,1.5,-0.

android - 在 kotlin 中,如何在目标需要 List 的地方传回 MutableList

拥有一个以List作为值定义的hashMap:privatevarmMap:HashMap>?=null有一个函数返回一个hashMap但具有MutableList的值fungetDataStatus(response:JSONObject?):HashMap>{returnHashMap>()}将结果传递给期望List的hashMap时出现错误:mMap=getDataStatus(resp)//出现错误:Error:(81,35)Typemismatch:inferredtypeisHashMap>butHashMap>?wasexpected 最佳答案

android - 在 kotlin 中,如何在目标需要 List 的地方传回 MutableList

拥有一个以List作为值定义的hashMap:privatevarmMap:HashMap>?=null有一个函数返回一个hashMap但具有MutableList的值fungetDataStatus(response:JSONObject?):HashMap>{returnHashMap>()}将结果传递给期望List的hashMap时出现错误:mMap=getDataStatus(resp)//出现错误:Error:(81,35)Typemismatch:inferredtypeisHashMap>butHashMap>?wasexpected 最佳答案

android - Android Studio 3.0 中的普通 Kotlin 模块,不支持 `api`?

从Gradle插件3.0(AndroidStudio3.0)开始,compile命令已替换为api和implementation。这里解释https://blog.mindorks.com/implementation-vs-api-in-gradle-3-0-494c817a6fa但是,对于如下纯Kotlin模块,我不能使用api。即当我执行同步时,下面的代码会出错applyplugin:'kotlin'dependencies{implementationfileTree(dir:'libs',include:['*.jar'])api"org.jetbrains.kotlin:k

android - Android Studio 3.0 中的普通 Kotlin 模块,不支持 `api`?

从Gradle插件3.0(AndroidStudio3.0)开始,compile命令已替换为api和implementation。这里解释https://blog.mindorks.com/implementation-vs-api-in-gradle-3-0-494c817a6fa但是,对于如下纯Kotlin模块,我不能使用api。即当我执行同步时,下面的代码会出错applyplugin:'kotlin'dependencies{implementationfileTree(dir:'libs',include:['*.jar'])api"org.jetbrains.kotlin:k

c# - Kotlin 的数据类 == C# 的结构?

我之前使用过C#,我们可以在其中定义一个struct,它将是一个值类型。我现在正在学习Kotlin,据我所知,kotlindata-class按值比较,可以按值复制等。在网上找到了一些关于此的讨论,但这并不简单,我想精通C#和Kotlin的人来澄清这一点:我可以像C#struct一样解释Kotlin的dataclass并收工吗?如果不是,有什么区别? 最佳答案 Kotlin数据类和C#结构的主要区别在于,Kotlin数据类仍然是类,它们通过引用(一种引用类型,就C#而言)传递并存储在与其他对象相同的堆(不考虑可能的JVM优化)而不是

c# - Kotlin 的数据类 == C# 的结构?

我之前使用过C#,我们可以在其中定义一个struct,它将是一个值类型。我现在正在学习Kotlin,据我所知,kotlindata-class按值比较,可以按值复制等。在网上找到了一些关于此的讨论,但这并不简单,我想精通C#和Kotlin的人来澄清这一点:我可以像C#struct一样解释Kotlin的dataclass并收工吗?如果不是,有什么区别? 最佳答案 Kotlin数据类和C#结构的主要区别在于,Kotlin数据类仍然是类,它们通过引用(一种引用类型,就C#而言)传递并存储在与其他对象相同的堆(不考虑可能的JVM优化)而不是

kotlin - 在 init block 中如何处理被覆盖的属性?

我试图理解为什么会抛出以下代码:openclassBase(openvalinput:String){lateinitvarderived:Stringinit{derived=input.toUpperCase()//throws!}}classSub(overridevalinput:String):Base(input)当像这样调用这段代码时:println(Sub("test").derived)它抛出异常,因为在调用toUpperCase时,input解析为null。我发现这个反直觉:我将一个非空值传递给主构造函数,但在父类(superclass)的initblock中它解析