草庐IT

kotlin-experimental

全部标签

kotlin - 使用 Kotlin 进行单元测试的 Dagger 2

在KotlinBlog有说明如何使Dagger2与Kotlin一起工作。一切都像魅力一样。到目前为止……我只是无法让它在测试中工作。DaggerTestSomeComponent不是从TestSomeComponent:SomeComponent生成的。我尝试了各种组合。包括在测试中创建全新的组件。还是什么都没有。有什么解决方法吗?或者我可以提供一些其他详细信息吗? 最佳答案 确保将kaptAndroidTest'com.google.dagger:dagger-compiler:2.0'添加到您的依赖项中。

android - Android 上的 Kotlin : map a cursor to a list

在Kotlin中,遍历AndroidCursor对象并将结果放入列表的最佳方法是什么?我的自动转换Java:vallist=ArrayList()while(c.moveToNext()){list.add(getStringFromCursor(c))}还有更惯用的方法吗?特别是,它可以在只读列表的单个分配中完成吗?比如……vallist=/*mystery*/.map(getStringFromCursor)...或其他一些排列,其中列表被分配完整的形式。 最佳答案 这就是我最后使用的方法,使用kotlin.sequences.

reflection - Kotlin,如何通过反射检索字段值

所以我在几个classes中有数百个字段我想在它们上编写一些方法,它们会自动println每个字段及其对应的值目前我有这个:innerclassVersion(valprofile:Profile){@JvmFieldvalMINOR_VERSION=glGetInteger(GL_MINOR_VERSION)funwrite(file:File?=null){//file.printWriter().use{out->out.pri}this::class.java.fields.forEach{println(it.isAccessible)println(it.getInt(it

operator-overloading - 在 Kotlin 中调用运算符和运算符重载

我了解了Invoke运算符,a()等价于a.invoke()关于Invoke运算符的内容是否比请解释的更多。此外,我没有得到任何Invoke运算符重载的示例。调用运算符重载可能吗?如果可能的话,任何人都可以用一个例子解释一下Invoke运算符重载吗?我对此一无所知。提前致谢。 最佳答案 是的,您可以重载invoke。这是一个例子:classGreeter(valgreeting:String){operatorfuninvoke(target:String)=println("$greeting$target!")}valhello

arrays - Kotlin 中的展平数组

我有一个二维节点数组,我想使用Kotlin数组的flatten函数将其展平为所有节点的单个数组。valnodes=kotlin.Array(width,{width->kotlin.Array(height,{height->Node(width,height)})})然后我尝试在二维数组上调用flatten函数nodes.flatten()但我收到一个错误:Typemismatch:inferredtypeisArray>butArray>wasexpected.我应该这样做吗? 最佳答案 使用更通用的flatMap:nodes.

另一个kt中的kotlin扩展方法访问

我正在考虑在一个文件中为String添加一个global扩展方法,无论我在哪里使用String,我都可以使用这个扩展。但我没能找到这样做的方法...我现在只是将扩展粘贴到各处。A.kt中的扩展:classA{......funString.add1():String{returnthis+"1"}......}并在B.kt中像这样访问:classB{funmain(){......vara=""a.add1()......}}我已经尝试了所有可以添加的方法,例如static和final,但没有任何效果。 最佳答案 确保您的扩展函数是

android - 当所选项目 View 为空时,Kotlin 在 Android 上崩溃

我收到一个错误,当我运行它时应用程序死掉了。这是错误:07-2221:02:19.7853136-3136/?E/dalvikvm:Couldnotfindclass'android.graphics.drawable.RippleDrawable',referencedfrommethodandroid.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering07-2221:02:19.8253136-3136/?E/dalvikvm:Couldnotfindclass'android.widget.ThemedSp

arrays - Kotlin 使用迭代索引过滤 lambda 数组

我想将一个数组过滤成每第n个项目的数组。例如:fungetNth(array:Array,n:Int):Array{valnewList=ArrayList()for(iin0..array.size){if(i%n==0){newList.add(array[i])}}returnnewList.toArray()}有没有一种惯用的方法来做到这一点,例如使用Kotlin的.filter()并且没有A)提供新的ArrayList和B)手动迭代for/in循环? 最佳答案 filterIndexed函数正好适合这种情况:array.f

android - 处理 EditText 上的 Enter 键(Kotlin,Android)

如何在AndroidKotlin语言中处理EditText上的Enter键? 最佳答案 波纹管是上述问题的最简单解决方案editText.setOnKeyListener(View.OnKeyListener{v,keyCode,event->if(keyCode==KeyEvent.KEYCODE_ENTER&&event.action==KeyEvent.ACTION_UP){//PerformCodereturn@OnKeyListenertrue}false}) 关于androi

kotlin - Kotlin 中的 "duplicate in when"是什么?

我写的代码如下:when(month){1or7->arrHoangDao=arrayListOf("Tý","Sửu","Tỵ","Mùi")2or8->arrHoangDao=arrayListOf("Dần","Mão","Mùi","Dậu")3or9->arrHoangDao=arrayListOf("Thìn","Tỵ","Dậu","Hợi")4or10->arrHoangDao=arrayListOf("Ngọ","Mùi","Sửu","Dậu")5or11->arrHoangDao=arrayListOf("Thân","Dậu","Sửu","Mão")/*6or