草庐IT

Kotlin-script

全部标签

kotlin - 有没有办法编写一个改变对象值的扩展函数?

在我的情况下,我想更改一个原语-bool值我从不喜欢以下类型的代码:privatevarfirstTime:Boolean=true...if(firstTime){//dosomethingforthefirsttimeherefirstTime=false}如果我能有这样的扩展功能就好了:if(firstTime.checkAndUnset()){//dosomethingforthefirsttimehere}这可能吗? 最佳答案 适用于属性的解决方案是为可变属性编写扩展函数,然后将其与属性引用一起使用。此代码适用于Kotli

kotlin - 在 Kotlin 中与自动关闭一起使用

在stdlib/kotlin.io我们发现inlinefunT.use(block:(T)->R):R(source)但是它是在Closeable上实现的,而不是在super接口(interface)AutoCloseable上实现的。在使用一些使用AutoCloseable的框架时,这可能会有点痛苦。为什么Kotlin不支持AutoCloseble的“使用”? 最佳答案 kotlin-stdlib适用于JDK6及更高版本,因此它不知道AutoCloseable(仅在Java7中添加)。但是你可以在kotlin-stdlib-jre

kotlin - 在 Kotlin 中与自动关闭一起使用

在stdlib/kotlin.io我们发现inlinefunT.use(block:(T)->R):R(source)但是它是在Closeable上实现的,而不是在super接口(interface)AutoCloseable上实现的。在使用一些使用AutoCloseable的框架时,这可能会有点痛苦。为什么Kotlin不支持AutoCloseble的“使用”? 最佳答案 kotlin-stdlib适用于JDK6及更高版本,因此它不知道AutoCloseable(仅在Java7中添加)。但是你可以在kotlin-stdlib-jre

android - Gradle kotlin 不支持的方法 Dependencies.getAtoms()

刚刚使用kotlin使用Studio3.0Canary3启动了一个新的Android项目,并试图让它进行gradle项目同步。目前失败了Error:Unsupportedmethod:Dependencies.getAtoms().TheversionofGradleyouconnecttodoesnotsupportthatmethod.Toresolvetheproblemyoucanchange/upgradethetargetversionofGradleyouconnectto.Alternatively,youcanignorethisexceptionandreadoth

android - Gradle kotlin 不支持的方法 Dependencies.getAtoms()

刚刚使用kotlin使用Studio3.0Canary3启动了一个新的Android项目,并试图让它进行gradle项目同步。目前失败了Error:Unsupportedmethod:Dependencies.getAtoms().TheversionofGradleyouconnecttodoesnotsupportthatmethod.Toresolvetheproblemyoucanchange/upgradethetargetversionofGradleyouconnectto.Alternatively,youcanignorethisexceptionandreadoth

inheritance - 如何让数据类在 Kotlin 中实现接口(interface)/扩展父类(super class)属性?

我有几个数据类,其中包括varid:Int?字段。我想在interface或superclass中表达这一点,并让数据类扩展它并在构造时设置此id。但是,如果我尝试这样做:interfaceB{varid:Int?}dataclassA(varid:Int):B(id)它提示我正在覆盖id字段,我是哈哈..Q:在这种情况下,如何让数据类A在构造时获取一个id,并设置该id在interface或superclass中声明? 最佳答案 确实,您不需要abstractclass然而。您可以覆盖interface属性,例如:interfac

inheritance - 如何让数据类在 Kotlin 中实现接口(interface)/扩展父类(super class)属性?

我有几个数据类,其中包括varid:Int?字段。我想在interface或superclass中表达这一点,并让数据类扩展它并在构造时设置此id。但是,如果我尝试这样做:interfaceB{varid:Int?}dataclassA(varid:Int):B(id)它提示我正在覆盖id字段,我是哈哈..Q:在这种情况下,如何让数据类A在构造时获取一个id,并设置该id在interface或superclass中声明? 最佳答案 确实,您不需要abstractclass然而。您可以覆盖interface属性,例如:interfac

java - 从 Java 调用 Kotlin 高阶函数

我有一个Kotlin辅助类定义为:classCountdownTimer(endDateInSeconds:Long,callback:(timeRemaining:RemainingTime)->Unit)顾名思义,它需要一个纪元时间和一个回调,以固定的时间间隔(在本例中为秒)调用,直到到达结束日期。RemainingTime是一个数据类,包含到结束日期为止的时间量(秒、分钟、小时等)。我可以干净地使用Kotlin中的这个类:countdownTimer=CountdownTimer(endDate,{timeRemaining->vartimeString=//formattime

java - 从 Java 调用 Kotlin 高阶函数

我有一个Kotlin辅助类定义为:classCountdownTimer(endDateInSeconds:Long,callback:(timeRemaining:RemainingTime)->Unit)顾名思义,它需要一个纪元时间和一个回调,以固定的时间间隔(在本例中为秒)调用,直到到达结束日期。RemainingTime是一个数据类,包含到结束日期为止的时间量(秒、分钟、小时等)。我可以干净地使用Kotlin中的这个类:countdownTimer=CountdownTimer(endDate,{timeRemaining->vartimeString=//formattime

android - 在 Kotlin 中使用 @Parcelize 注释的 NoSuchMethodError

我目前正在尝试实验(这可能是它不起作用的原因......)@Parcelize注释以生成Parcelable代码。大多数类型似乎工作正常,但我遇到了Serializable抛出NoSuchMethodError的问题:10-0513:55:18.54920808-20808/com.appE/AndroidRuntime:FATALEXCEPTION:mainProcess:com.app,PID:20808java.lang.NoSuchMethodError:NovirtualmethodwriteSerializable(Ljava/util/Date;)VinclassLand