Tag: kotlin

Kotlin类型推断失败

比方说,我们有一个这样的类的第三方Java库: //—————————————————————————————- package foo; public final class Functions { public interface VoidFunc0 { void call(); } public interface VoidFunc1<T> { void call(T t); } @SuppressWarnings("unchecked") public static <T> NoOpFunc<T> noOp() { return new NoOpFunc(); } /*public*/ static final class NoOpFunc<T> implements VoidFunc0, VoidFunc1<T> { @Override public void call() { /* deliberately no op */} @Override […]

Kotlin:内在范围 – 这

我只是使用Kotlins自动重构,它基本上离开了我: coverView.viewTreeObserver.addOnPreDrawListener { coverView.viewTreeObserver.removeOnPreDrawListener(this) true } 哪个不行 IntelliJ显示我this是指外部类而不是OnPreDrawListener。 这是为什么? kotlin文档说这总是指最内在的范围。

Kotlin android parcelable

我已经使用Android插件的android工作室的自动生成的功能,它生成了我下面的代码,但我不明白为什么需要为CREATOR字段的final val CREATOR ? 我在kotlin第一次看到final关键字。 data class Person( val name: String, val surname: String ) : Parcelable { constructor(source: Parcel): this(source.readString(), source.readString()) override fun describeContents(): Int { return 0 } override fun writeToParcel(dest: Parcel?, flags: Int) { dest?.writeString(name) dest?.writeString(surname) } companion object { @JvmField final val CREATOR: Parcelable.Creator<Person> = object : Parcelable.Creator<Person> { override fun […]

什么是Java的String 的Kotlin等价物?

我看到Kotlin具有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray ,相当于ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray中的byte[], short[], int[],char[], double[], float[] 。 现在我想知道,是否有任何相当于Java的String[] StringArray ?

与JPA Kotlin:默认构造函数地狱

按照JPA的要求,@ @Entity类应该有一个默认的(非arg)构造函数来从数据库中检索对象时实例化对象。 在Kotlin中,属性在主构造函数中声明非常方便,如下例所示: class Person(val name: String, val age: Int) { /* … */ } 但是,当非参数构造函数被声明为次要构造函数时,它需要传递主构造函数的值,所以需要一些有效的值,如下所示: @Entity class Person(val name: String, val age: Int) { private constructor(): this("", 0) } 如果这些属性比String和Int有更复杂的类型,并且它们是不可空的,那么为它们提供值看起来完全不好,尤其是当主构造函数和init块中有很多代码,并且参数是积极使用 – 当它们被重新分配时,大部分代码将被重新执行。 而且, val -properties不能在构造函数执行后重新分配,所以不可变性也会丢失。 所以问题是:Kotlin代码如何适应与JPA无代码重复,选择“魔术”的初始值和不可变性的损失? PS除了JPA,Hibernate是否可以构造没有默认构造函数的对象呢?

Kotlin Json解析器

我在Kotlin有这个JSON,我不能获取和解析。 任何快速的帮助。 请。 [{platform: {name: "mena-web",publishingRegion: "mena",platformGroup:"web",id: 2,countryCode: "AE",locales: {locale:["en_US","ar_AE"]}}}] 这里是我的数据类: data class Locales(var locale: ArrayList<String>) {} data class Platform(var name: String, var publishingRegion: String, var platformGroup: String, var id: Int, var countryCode: String, var locales: Locales) {} data class Json(var platform: Platform) {} 这是我的JSON API接口: interface Api { @GET("/me.json2") fun getGeo(callback: Callback<List<Json>>): Call<List<Json>> } […]

解析xml kotlin android

我有这样的XML: <horo> <aries> <today> Сегодня вас могут здорово огорчить. Если от расстройства все начнет валится из рук, просто спокойно сядьте и тихонько подождите хорошей новости. </today> </aries> <taurus> <today> Сегодня у вас могут возникнуть проблемы на личном фронте. Спасти вас от перспективы оказаться не у дел может сухой, рациональный и в высшей степени объективный подход […]

为什么Kotlin不遵循Java语法?

我正在学习Kotlin作为Android开发人员! 出于好奇,为什么JetBrains的人不遵循Java风格的语法(他们可能拥有哪些语法),并且让开发人员更容易学习Kotlin ? 例如,在Kotlin中定义一个简单的函数: fun simpleFunc(x: Int): Int { // do stuff } 他们为什么没有这样做: fun Int simpleFunc(Int x) { // do stuff } 我希望听到你的意见

Enum.valueOf在Kotlin

有没有办法像Kotlin这样的工作,没有反思呢? inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?): T? { return java.lang.Enum.valueOf(T::class.java, type) } 下面的例子不能编译,因为: inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: kotlin.String?): T?绑定T的类型参数inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: kotlin.String?): T? 不满意:推断类型TestEnum? 不是kotlin.Enum<TestEnum?>的子类型 enum class TestEnum fun main() { val value: TestEnum? = safeValueOf("test") }

在java开关表达式中使用kotlin常量

我最近一直在研究Kotlin lang,并与java进行了交互。 我有以下的Java代码: public void select(int code) { switch code { case Service.CONSTANT_ONE: break; case Service.CONSTANT_TWO: break; default: break; } } Service.kt写法如下: class Service { companion object { val CONSTANT_ONE = 1 val CONSTANT_TWO = 2 } } Java编译器说,CONSTANT_ONE和CONSTANT_TWO必须是常量,但我不知道,我怎样才能使它们比现在更加稳定。 所以我的问题是:如何使用java swicth语句中的kotlin常量? 我正在使用jdk8和kotlin M14。