草庐IT

android - Kotlin 注解参数必须是编译时常量

@BindView(R.id.et_login_username)internalvarloginUsername:EditText?=nullKotlinannotationparametermustbeacompile-timeconstant这是显示的错误。 最佳答案 要在Kotlin中使用ButterKnife,请确保您已在appgradle中添加以下依赖项。applyplugin:'kotlin-android'applyplugin:'kotlin-kapt'applyplugin:'kotlin-android-ext

json - 如何序列化/反序列化 Kotlin 密封类?

我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?

json - 如何序列化/反序列化 Kotlin 密封类?

我有以下密封类:sealedclassViewModel{dataclassLoaded(valvalue:String):ViewModel()objectLoading:ViewModel()}我如何序列化/反序列化ViewModel类的实例,比如JSON格式?我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。但是,库在Kotlinobject类型上失败,因为这些是没有公共(public)构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但也许有更简单的方法来做到这一点?

Androidx错误膨胀 View

我正在尝试使用Androidx。该应用程序非常新,因此没有太多代码。我确实在androidstudio中使用了“RefactortoAndroidx”选项。但在那之后的某个时候,它停止了工作。我不知道是什么让它停止工作。我该怎么办?但它得到这个错误Errorinflatingclassandroidx.constraintlayout.widget.ConstraintLayout主要ActivityclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.on

Androidx错误膨胀 View

我正在尝试使用Androidx。该应用程序非常新,因此没有太多代码。我确实在androidstudio中使用了“RefactortoAndroidx”选项。但在那之后的某个时候,它停止了工作。我不知道是什么让它停止工作。我该怎么办?但它得到这个错误Errorinflatingclassandroidx.constraintlayout.widget.ConstraintLayout主要ActivityclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.on

android - 为什么懒惰的kotlin会导致android中的内存泄漏?

我这样定义一个加载对话框privatevalloadingDialog:LoadingDialogbylazy{LoadingDialog()}loadingDialog是一个DialogFragment当我使用leakcanary观看我的应用程序时,我发现loadingDialog导致内存有人可以帮帮我吗? 最佳答案 当您定义一个val委托(delegate)bylazy{...}时,传递给委托(delegate)的lambda会将范围捕获到其闭包中(尽管它只是外部this在你的情况下,它可能是一个Activity实例)。然后委托

android - 为什么懒惰的kotlin会导致android中的内存泄漏?

我这样定义一个加载对话框privatevalloadingDialog:LoadingDialogbylazy{LoadingDialog()}loadingDialog是一个DialogFragment当我使用leakcanary观看我的应用程序时,我发现loadingDialog导致内存有人可以帮帮我吗? 最佳答案 当您定义一个val委托(delegate)bylazy{...}时,传递给委托(delegate)的lambda会将范围捕获到其闭包中(尽管它只是外部this在你的情况下,它可能是一个Activity实例)。然后委托

kotlin - 通过辅助构造函数初始化 Kotlin 数据类的 val 属性

classAnimal{valname:Stringconstructor(name:String){this.name=name//initializedviaconstructor}}对于Kotlin中的上述类,我可以通过辅助构造函数初始化val属性,但对于数据类dataclassUser(valname:String,valpostalCode:Int){valemail:Stringconstructor(email:String):this("",1){this.email=email//error:valuecannotbereassigned}}我无法理解的是,电子邮件属

kotlin - 通过辅助构造函数初始化 Kotlin 数据类的 val 属性

classAnimal{valname:Stringconstructor(name:String){this.name=name//initializedviaconstructor}}对于Kotlin中的上述类,我可以通过辅助构造函数初始化val属性,但对于数据类dataclassUser(valname:String,valpostalCode:Int){valemail:Stringconstructor(email:String):this("",1){this.email=email//error:valuecannotbereassigned}}我无法理解的是,电子邮件属

Java 8 日期 API - 获取月份中的一周抛出 UnsupportedTemporalTypeException : Unsupported field: DayOfWeek

我正在尝试像这样获取当前月份的星期几:YearMonth.from(Instant.now().atZone(ZoneId.of("UTC"))).get(WeekFields.ISO.weekOfMonth())但这会引发java.time.temporal.UnsupportedTemporalTypeException:Unsupportedfield:DayOfWeek我似乎无法弄清楚为什么会出现此异常,因为我没有对DayOfWeek做任何事情。有什么想法吗? 最佳答案 您无法使用YearMonth获取当前月份的星期几。它只