草庐IT

Kotlin-script

全部标签

android - Kotlin : safe lambdas (no memory leak)?

阅读后thisarticleaboutMemoryLeaks,我想知道在KotlinAndroid项目中使用lambdas是否安全。确实,lambda语法让我更轻松地编程,但是内存泄漏呢?作为问题的一个例子,我从我的一个项目中获取了一段代码,我在其中构建了一个AlertDialog。这段代码在我项目的MainActivity类中。fundeleteItemOnConfirmation(id:Long):Unit{valitem=explorerAdapter.getItemAt(id.toInt())valstringId=if(item.isDirectory)R.string.ab

kotlin - Kotlin 中 with 和 run 的区别

with和run是否具有相同的功能,只是语法不同,或者with和run之间是否存在重大差异?正确的方法是什么?adapter.run{notifyDataSetChanged()if(activityDetails.isEmpty())emptyText.visibility=View.VISIBLEelseemptyText.visibility=View.GONE}with(adapter){notifyDataSetChanged()if(activityDetails.isEmpty())emptyText.visibility=View.VISIBLEelseemptyTex

kotlin - Kotlin 中 with 和 run 的区别

with和run是否具有相同的功能,只是语法不同,或者with和run之间是否存在重大差异?正确的方法是什么?adapter.run{notifyDataSetChanged()if(activityDetails.isEmpty())emptyText.visibility=View.VISIBLEelseemptyText.visibility=View.GONE}with(adapter){notifyDataSetChanged()if(activityDetails.isEmpty())emptyText.visibility=View.VISIBLEelseemptyTex

android - 带有 Kotlin 的 Android 中的 HTTP 请求

我想使用POST方法进行登录验证,并使用GET方法获取一些信息。我已经有了之前项目的URL、服务器用户名和密码。 最佳答案 对于Android,Volley是一个开始的好地方。对于所有平台,您可能还想查看ktor客户或http4k这两个都是很好的库。不过,您也可以使用标准Java库,例如java.net.HttpURLConnection这是JavaSDK的一部分:funsendGet(){valurl=URL("http://www.google.com/")with(url.openConnection()asHttpURLCo

android - 带有 Kotlin 的 Android 中的 HTTP 请求

我想使用POST方法进行登录验证,并使用GET方法获取一些信息。我已经有了之前项目的URL、服务器用户名和密码。 最佳答案 对于Android,Volley是一个开始的好地方。对于所有平台,您可能还想查看ktor客户或http4k这两个都是很好的库。不过,您也可以使用标准Java库,例如java.net.HttpURLConnection这是JavaSDK的一部分:funsendGet(){valurl=URL("http://www.google.com/")with(url.openConnection()asHttpURLCo

kotlin - 如何获取给定密封类的所有子类?

最近我们将其中一个枚举类升级为密封类将对象作为子类,这样我们就可以创建另一层抽象来简化代码。但是,我们不能再通过Enum.values()函数获得所有可能的子类,这很糟糕,因为我们严重依赖该功能。有没有办法通过反射或任何其他工具来检索这些信息?PS:手动将它们添加到数组中是NotAcceptable。目前有45个,并且计划增加更多。这就是我们的密封类的样子:sealedclassStateobjectStateA:State()objectStateB:State()objectStateC:State()....//42more如果有一个values集合,它将是这个形状:valVAL

kotlin - 如何获取给定密封类的所有子类?

最近我们将其中一个枚举类升级为密封类将对象作为子类,这样我们就可以创建另一层抽象来简化代码。但是,我们不能再通过Enum.values()函数获得所有可能的子类,这很糟糕,因为我们严重依赖该功能。有没有办法通过反射或任何其他工具来检索这些信息?PS:手动将它们添加到数组中是NotAcceptable。目前有45个,并且计划增加更多。这就是我们的密封类的样子:sealedclassStateobjectStateA:State()objectStateB:State()objectStateC:State()....//42more如果有一个values集合,它将是这个形状:valVAL

kotlin - 如何使用 toString 扩展数据类

我已经创建了一个数据类dataclassSomething(vala:String,valb:Object,valc:String)在我的程序后面,我需要这个数据类的字符串表示,我试图扩展toString方法。overridefunSomething.toString():String=a+b.result()+c这里的问题是,它不允许扩展(覆盖)toString函数,因为它不适用于顶级函数。如何正确覆盖/扩展自定义数据类的toString方法? 最佳答案 添加.toString()扩展函数不起作用,因为:扩展函数不能参与虚拟调用(

kotlin - 如何使用 toString 扩展数据类

我已经创建了一个数据类dataclassSomething(vala:String,valb:Object,valc:String)在我的程序后面,我需要这个数据类的字符串表示,我试图扩展toString方法。overridefunSomething.toString():String=a+b.result()+c这里的问题是,它不允许扩展(覆盖)toString函数,因为它不适用于顶级函数。如何正确覆盖/扩展自定义数据类的toString方法? 最佳答案 添加.toString()扩展函数不起作用,因为:扩展函数不能参与虚拟调用(

java - Kotlin 中的私有(private)构造函数

在Java中,可以隐藏类的主构造函数,方法是将其设为private,然后通过其中的publicstatic方法访问它类:publicfinalclassFoo{/*Publicstaticmethod*/publicstaticfinalFooconstructorA(){//dostuffreturnnewFoo(someData);}privatefinalDatasomeData;/*Mainconstructor*/privateFoo(finalDatasomeData){Objects.requireNonNull(someData);this.someData=someD