草庐IT

Kotlin-script

全部标签

java - Kotlin 。如何通过反射检查该字段是否可以为空?

我正在开发一个代码生成器,它在运行时从类中获取数据。此生成器设计为仅与Kotlin一起使用。目前,我遇到了这个问题,因为我不知道如何检查该字段是否可以为空。那么主要的问题是如何通过反射来实现这个检查? 最佳答案 您可以使用isMarkedNullable检查可空性.以下代码:classMyClass(valnullable:Long?,valnotNullable:MyClass)MyClass::class.declaredMemberProperties.forEach{println("Property$itisMarkedN

kotlin - Kotlin 有 'trait' 类型吗?

我不断发现Kotlin示例中提到的trait。例如这个answer使用trait。在Kotlin中是否使用了trait关键字?如果是,我在哪里可以找到有关它的信息,如果不是,它在某个时候是否是语言规范的一部分? 最佳答案 关键字trait是Kotlin中的关键字,但现在已被删除。它在KotlinM12版本中已被弃用。您可以找到更多here.编辑:它已被interface关键字取代,参见notestoM12release中的Traitsarenowinterfaces. 关于kotlin-

kotlin - Kotlin 有 'trait' 类型吗?

我不断发现Kotlin示例中提到的trait。例如这个answer使用trait。在Kotlin中是否使用了trait关键字?如果是,我在哪里可以找到有关它的信息,如果不是,它在某个时候是否是语言规范的一部分? 最佳答案 关键字trait是Kotlin中的关键字,但现在已被删除。它在KotlinM12版本中已被弃用。您可以找到更多here.编辑:它已被interface关键字取代,参见notestoM12release中的Traitsarenowinterfaces. 关于kotlin-

generics - Kotlin:泛型、反射以及类型 T 和 T:Any 之间的区别

如果我尝试访问泛型类型T的javaClass,Kotlin编译器会提示T不是kotlin.Any的子类型classFoo(valt:T){valcls=t.javaClass//Error,Tisnotasubtypeofkotlin.Any}如果将T定义为Any的子类型,一切正常。classBar(valt:T){valcls=t.javaClass//OK}Q1)如果类型“T”不是“Any”的子类型,那么它可以是哪些类/类的子类型?Q2)T的所有实例是否都存在javaClass,如果存在,我该如何访问它? 最佳答案 默认gene

generics - Kotlin:泛型、反射以及类型 T 和 T:Any 之间的区别

如果我尝试访问泛型类型T的javaClass,Kotlin编译器会提示T不是kotlin.Any的子类型classFoo(valt:T){valcls=t.javaClass//Error,Tisnotasubtypeofkotlin.Any}如果将T定义为Any的子类型,一切正常。classBar(valt:T){valcls=t.javaClass//OK}Q1)如果类型“T”不是“Any”的子类型,那么它可以是哪些类/类的子类型?Q2)T的所有实例是否都存在javaClass,如果存在,我该如何访问它? 最佳答案 默认gene

android - kotlin 如何让 setOnClickListener 接受函数作为参数

在kotlin中,我们可以像这样使用setOnClickListener():view.setOnClickListener{println("Hello")}但如果我定义自己的接口(interface),我只能像这样传递匿名对象:obj.setMyListener(object:MyListener(){...})我只是想知道他们如何让setOnClickListener()接受一个函数而不是一个匿名对象。 最佳答案 根据Kotlin关于Javainterop的文档,对于Java中定义的函数式接口(interface),可以使用S

android - kotlin 如何让 setOnClickListener 接受函数作为参数

在kotlin中,我们可以像这样使用setOnClickListener():view.setOnClickListener{println("Hello")}但如果我定义自己的接口(interface),我只能像这样传递匿名对象:obj.setMyListener(object:MyListener(){...})我只是想知道他们如何让setOnClickListener()接受一个函数而不是一个匿名对象。 最佳答案 根据Kotlin关于Javainterop的文档,对于Java中定义的函数式接口(interface),可以使用S

java - Kotlin 内联函数是否比 Java 匿名类便宜?

请注意:我是凭内存写的,所以我可能有些概念不正确。Java具有编写匿名函数的能力。当您有某种事件的监听器接口(interface)时,这很有用。举个例子:button.setOnClickListener(newView.OnClickListener(Viewv){@OverridepublicvoidonClick(Viewv){//handletheactionhere}});匿名监听器将被编译为类似于OnClickListener$1.class的类。这是Java语言的底层设计决策。一切都是对象,甚至是匿名函数。当您想要编写功能更强大的代码库时,这会成为一个问题。大量的匿名类创

java - Kotlin 内联函数是否比 Java 匿名类便宜?

请注意:我是凭内存写的,所以我可能有些概念不正确。Java具有编写匿名函数的能力。当您有某种事件的监听器接口(interface)时,这很有用。举个例子:button.setOnClickListener(newView.OnClickListener(Viewv){@OverridepublicvoidonClick(Viewv){//handletheactionhere}});匿名监听器将被编译为类似于OnClickListener$1.class的类。这是Java语言的底层设计决策。一切都是对象,甚至是匿名函数。当您想要编写功能更强大的代码库时,这会成为一个问题。大量的匿名类创

android - 迭代kotlin时从列表中删除数据

我是kotlin编程的新手。我想要的是我想在迭代列表时从列表中删除特定数据,但是当我这样做时,我的应用程序崩溃了。for((pos,i)inlistTotal!!.withIndex()){if(pos!=0&&pos!=listTotal!!.size-1){if(paymentsAndTagsModel.tagName==i.header){//listTotal!!.removeAt(pos)listTotal!!.remove(i)}}}或for((pos,i)inlistTotal!!.listIterator().withIndex()){if(i.header==paym