草庐IT

Kotlin-script

全部标签

floating-point - 比较 Kotlin 中的 NaN

所以我最近开始喜欢kotlin语言。今天,在比较double时,我遇到了不可避免的NaN。funmain(args:Array){valnan=Double.NaNprintln("1:"+(nan==nan))println("2:"+(nan==(nanasNumber)))println("3:"+((nanasNumber)==nan))}注意:(Double是Number的子类型)运行上述代码产生:1:false2:true3:true我了解comparingJava中的NaN会返回false,所以我希望所有表达式都是false。如何解释这种行为?其背后的原理是什么?

floating-point - 比较 Kotlin 中的 NaN

所以我最近开始喜欢kotlin语言。今天,在比较double时,我遇到了不可避免的NaN。funmain(args:Array){valnan=Double.NaNprintln("1:"+(nan==nan))println("2:"+(nan==(nanasNumber)))println("3:"+((nanasNumber)==nan))}注意:(Double是Number的子类型)运行上述代码产生:1:false2:true3:true我了解comparingJava中的NaN会返回false,所以我希望所有表达式都是false。如何解释这种行为?其背后的原理是什么?

kotlin - 从 Kotlin 访问 Integer.class

我有一个接受Class参数的Java方法。我需要将Integer.class传递给它,但来自Kotlin代码。我尝试了Int::class.java,但这不起作用,因为int.class已传递给函数。我的问题是,如何从Kotlin访问Integer.class。Javavoidfoo(Classclazz);Kotlinfoo(Int::class.java)//doesnotwork,int.classgetspassedtofoo 最佳答案 您必须使用KClass#javaObjectType在Kotlin中获取包装器类型类:R

kotlin - 从 Kotlin 访问 Integer.class

我有一个接受Class参数的Java方法。我需要将Integer.class传递给它,但来自Kotlin代码。我尝试了Int::class.java,但这不起作用,因为int.class已传递给函数。我的问题是,如何从Kotlin访问Integer.class。Javavoidfoo(Classclazz);Kotlinfoo(Int::class.java)//doesnotwork,int.classgetspassedtofoo 最佳答案 您必须使用KClass#javaObjectType在Kotlin中获取包装器类型类:R

json - Moshi 忽略 Kotlin 中的字段

我想知道在使用Moshi时如何忽略Kotlin类字段。我找到了Java(Moshiignorefield)的这个答案,这表明使用关键字transient如下privatetransientStringyour_variable_name;但我找不到在Kotlin中完成这项工作的正确方法。 最佳答案 使用@Transient注释。@Transientprivatevalyour_variable_name:String这里的文档:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.j

json - Moshi 忽略 Kotlin 中的字段

我想知道在使用Moshi时如何忽略Kotlin类字段。我找到了Java(Moshiignorefield)的这个答案,这表明使用关键字transient如下privatetransientStringyour_variable_name;但我找不到在Kotlin中完成这项工作的正确方法。 最佳答案 使用@Transient注释。@Transientprivatevalyour_variable_name:String这里的文档:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.j

gradle - 如何在 Gradle 中设置 Kotlin 源编码?

使用Gradle构建Java或Groovy时,可以像这样定义源编码:compileJava{options.encoding='UTF-8'}compileTestJava{options.encoding='UTF-8'}compileGroovy{groovyOptions.encoding='UTF-8'}compileTestGroovy{groovyOptions.encoding='UTF-8'}但是,使用Kotlin的类似方法不起作用:compileKotlin{kotlinOptions.jvmTarget='1.8'kotlinOptions.encoding='UT

gradle - 如何在 Gradle 中设置 Kotlin 源编码?

使用Gradle构建Java或Groovy时,可以像这样定义源编码:compileJava{options.encoding='UTF-8'}compileTestJava{options.encoding='UTF-8'}compileGroovy{groovyOptions.encoding='UTF-8'}compileTestGroovy{groovyOptions.encoding='UTF-8'}但是,使用Kotlin的类似方法不起作用:compileKotlin{kotlinOptions.jvmTarget='1.8'kotlinOptions.encoding='UT

java - Kotlin:集合既没有泛型类型也没有 OneToMany.targetEntity()

我有一个枚举类RoleTypepublicenumRoleType{SYSTEM_ADMIN,PROJECT_ADMIN,USER;}在我的User实体类中,我有以下枚举集合的映射。这是Java代码:@JsonProperty@ElementCollection@Enumerated(EnumType.STRING)@CollectionTable(name="user_role",joinColumns=@JoinColumn(name="user_id"))privateSetroles;我将这个User实体类转换为Kotlin,代码如下:@JsonProperty@Enumera

java - Kotlin:集合既没有泛型类型也没有 OneToMany.targetEntity()

我有一个枚举类RoleTypepublicenumRoleType{SYSTEM_ADMIN,PROJECT_ADMIN,USER;}在我的User实体类中,我有以下枚举集合的映射。这是Java代码:@JsonProperty@ElementCollection@Enumerated(EnumType.STRING)@CollectionTable(name="user_role",joinColumns=@JoinColumn(name="user_id"))privateSetroles;我将这个User实体类转换为Kotlin,代码如下:@JsonProperty@Enumera