草庐IT

kotlin-experimental

全部标签

kotlin - Kotlin 中的 emptyArray() 有什么用

我在Kotlin中学习emptyArray(),但我无法在其中分配值(这是显而易见的),也无法设置它的大小。Kotlin中emptyArray有什么用? 最佳答案 在某些情况下,您希望退回到空数组或空列表。例如:returnsomeInputArray?.filterNotNull()?:emptyArray()在这种情况下,如果我有一个有效的输入数组,我会过滤掉null值,否则如果源数组是null,我会返回一个空数组。因此,总是返回一个数组而不是null。空列表和数组可能比在Kotlin中传递可空列表或数组更常见。所以是的,它是空

android - kotlin 委托(delegate)属性,在 get() 方法中我如何访问该值?

Kotlin具有委托(delegate)属性,这是一个非常好的特性。但我正在弄清楚如何获取和设置这些值。假设我想获得委托(delegate)的属性(property)的值(value)。在get()方法中,我如何访问该值?这是我如何实现的示例:classExample(){varp:StringbyDelegateExample()}classDelegateExample{operatorfungetValue(thisRef:Any?,property:KProperty):String{return"${property.name}"}operatorfunsetValue(th

java - 在 Java 代码中使用 kotlin 库

我有一个kotlin库FlowLayoutlibasaar,并想在我的java代码(android)中使用它但无法解析kotlin.Pair。FlowLayoutManagerlayoutManager=newFlowLayoutManager(3,RecyclerView.HORIZONTAL,newFlowLayoutManager.Interface(){@Overridepublickotlin.PairgetProportionalSizeForChild(inti){returnnull;}});我试过android.support.v4.util.Pair但不兼容。如何在

kotlin - kotlin 协程是否有带定时器的异步调用?

Kotlin是否有可能在协程中调用函数async()一段时间,女巫会在时间完成后返回默认结果?我发现可以只调用await,而不是无限等待结果。async{...valresult=computation.await()...}但实际生产案例比您需要返回默认结果或异常。在Kotlin协程中做某事的正确方法是什么?像这样的东西:async{...valtimeout=100500valresult:SomeDeferredClass=computation.await(timeout)if(result.isTimeout()){//getdefaultvalue}else{//proce

java - 在 Kotlin 中使用具有函数类型的函数接口(interface)

从Kotlin调用Java代码时,有SAMconversion所以Java代码是这样的:adapter.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewview,intposition){//Dostuffhere}});可以是这样的:adapter.setOnClickListener{view,position->//Dostuff}现在,我正在做一个Kotlin项目,我想定义一个函数式接口(interface)作为事件监听器:interfaceOnSomeActionListener{f

android-studio - kotlin 中的全局对象声明

如何在kotlin中像在javaTextViewtv;中一样全局声明对象。或任何方法在不同的方法/函数中调用相同的变量。overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valtextView:TextView=findViewById(R.id.texfirst)asTextViewtextView.setOnClickListener{Toast.makeText(applicationCont

java - 为什么 Kotlin 的字符串插值在 Java 中连接字符串?

所以,基本上我想知道Kotlin的字符串插值在Java(反编译字节码)中的外观如何。起初我以为它会使用StringBuffer(或StringBuilder)或String.format(),但似乎它会进行连接。这样做真的是最优的吗?字符串池呢?这是我的Kotlin代码:funmain(args:Array){valage:Int=24varmySuperString:String="Datois${age}yearsold!"println(mySuperString)}这是我从*.class文件中反编译的Java代码:importjava.io.PrintStream;import

loops - 更改 Kotlin 中的循环索引

如何在Kotlin中修改循环变量?对于我的特殊情况,我有一个for循环,在该循环中,对于某些条件,我想跳过下一次迭代:for(iin0..n){//...if(someCond){i++//Skipthenextiteration}}但是,当我尝试这个时,我被告知“无法重新分配val”。 最佳答案 你不能改变当前元素,你需要使用while循环来代替:vari=0while(i你想做什么?有可能有更惯用的方法来做到这一点。如果您可以重构此逻辑以跳过当前迭代,为什么不使用continue:for(iin0..n){if(someCond

android - kotlin android中带有注释的抽象val

我可以写吗:@IdResabstractfungetHeaderId():Int在kotlin中使用val而不是fun?它提示我在写作时需要一个支持字段或委托(delegate):@IdRes在这种情况下,哪个是最惯用的?带有fun的单线或搞乱支持字段(我不习惯支持字段,也许是抗变化,我从未真正使用过它们,所以我认为它们不愉快) 最佳答案 由于抽象的val或var只是一个没有支持字段的函数,因此无法通过IdRes注释进行注释,但有一种解决方法。你可以这样使用它:@get:IdResabstractvalheaderId:Int编辑:

kotlin - 如何在 kotlin 中使用反射查找包中的所有类

是否可以在给定包中找到所有kotlin类?我也只需要带注释的类,但这没什么大不了的。有什么建议吗? 最佳答案 由于类加载器的实现,JVM上的Kotlin在这方面遇到了与Java相同的问题。ClassloadersarenotrequiredtotelltheVMwhichclassesitcanprovide,insteadtheyarejusthandedrequestsforclasses,andhavetoreturnaclassorthrowanexception.来源和更多信息:Canyoufindallclassesin