草庐IT

Kotlin-script

全部标签

android - Kotlin - 当表达式返回函数类型

我想利用kotlin的when表达式和泛型方法来简化Android的共享首选项api。我不想一直调用getString()和getInt()等,而是创建一个扩展函数,该函数将根据函数的返回类型进行切换并调用适当的方法。如下所示:funSharedPreferences.get(key:String):T?{when(T){//howdoIswitchonreturntypeandcallappropriatefunction?isString->getString(key,null)isInt->getInt(key,-1)isBoolean->getBoolean(key,false

android - Kotlin 类没有从 firebase 获取其 bool 值

我的kotlin类为classCenter:Serializable{varactive:Boolean?=nullvaraddress:String?=nullvarisJobAccessGranted:Boolean?=null}这是我获得值(value)的方式//fromjavaclass@OverridepublicvoidonChildChanged(DataSnapshotdataSnapshot,Strings){centerMap.put(dataSnapshot.getKey(),dataSnapshot.getValue(Center.class));}但问题是我得

android - Kotlin 类没有从 firebase 获取其 bool 值

我的kotlin类为classCenter:Serializable{varactive:Boolean?=nullvaraddress:String?=nullvarisJobAccessGranted:Boolean?=null}这是我获得值(value)的方式//fromjavaclass@OverridepublicvoidonChildChanged(DataSnapshotdataSnapshot,Strings){centerMap.put(dataSnapshot.getKey(),dataSnapshot.getValue(Center.class));}但问题是我得

java - Kotlin lambda 回调的单元测试

假设我们有以下功能要测试funloadData(dataId:Long,completion:(JsonElement?,Exception?)->Unit){underlayingApi.post(url="some/rest/url",completion={rawResult,exception->valprocessedResult=processJson(rawResult)completion(processedResult,exception)})}我很清楚如何模拟、注入(inject)、stub和验证对underlayingApi的调用。如何验证通过completion

java - Kotlin lambda 回调的单元测试

假设我们有以下功能要测试funloadData(dataId:Long,completion:(JsonElement?,Exception?)->Unit){underlayingApi.post(url="some/rest/url",completion={rawResult,exception->valprocessedResult=processJson(rawResult)completion(processedResult,exception)})}我很清楚如何模拟、注入(inject)、stub和验证对underlayingApi的调用。如何验证通过completion

android - Kotlin 惰性默认属性

在Kotlin中,如何定义具有惰性默认值的var?例如,一个val会是这样的:valtoolbarColorbylazy{color(R.color.colorPrimary)}我想要做的是,为某些属性(toolbarColor)设置一个默认值,然后我可以为其他任何内容更改该值。可能吗?编辑:这是部分技巧。vartoolbarColor=R.color.colorPrimaryget()=color(field)set(value){field=value}是否可以通过编写来缓解这种情况vartoolbarColor=color(R.color.colorPrimary)set(val

android - Kotlin 惰性默认属性

在Kotlin中,如何定义具有惰性默认值的var?例如,一个val会是这样的:valtoolbarColorbylazy{color(R.color.colorPrimary)}我想要做的是,为某些属性(toolbarColor)设置一个默认值,然后我可以为其他任何内容更改该值。可能吗?编辑:这是部分技巧。vartoolbarColor=R.color.colorPrimaryget()=color(field)set(value){field=value}是否可以通过编写来缓解这种情况vartoolbarColor=color(R.color.colorPrimary)set(val

kotlin - kotlin.MetaData 中保存的数据格式是否记录在任何地方?

我很想知道添加到每个Kotlin类的MetaData注释中包含哪些数据。但大多数字段没有提供更多细节“自定义格式的元数据。不同种类的格式可能不同(甚至不存在)。”https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/runtime/kotlin/Metadata.kt是否有引用资料解释如何解释这些数据? 最佳答案 kotlin.Metadata包含有关Kotlin符号的信息,例如它们的名称、签名、类型之间的关系等。其中一些信息已经存在于类文件中的JV

kotlin - kotlin.MetaData 中保存的数据格式是否记录在任何地方?

我很想知道添加到每个Kotlin类的MetaData注释中包含哪些数据。但大多数字段没有提供更多细节“自定义格式的元数据。不同种类的格式可能不同(甚至不存在)。”https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/runtime/kotlin/Metadata.kt是否有引用资料解释如何解释这些数据? 最佳答案 kotlin.Metadata包含有关Kotlin符号的信息,例如它们的名称、签名、类型之间的关系等。其中一些信息已经存在于类文件中的JV

java - Kotlin 。如何通过反射检查该字段是否可以为空?

我正在开发一个代码生成器,它在运行时从类中获取数据。此生成器设计为仅与Kotlin一起使用。目前,我遇到了这个问题,因为我不知道如何检查该字段是否可以为空。那么主要的问题是如何通过反射来实现这个检查? 最佳答案 您可以使用isMarkedNullable检查可空性.以下代码:classMyClass(valnullable:Long?,valnotNullable:MyClass)MyClass::class.declaredMemberProperties.forEach{println("Property$itisMarkedN