Android可以在Kotlin下载

我有这样的Java parcelable: @SuppressWarnings("rawtypes") public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public KwerendaGraficzna createFromParcel(Parcel in) { return new KwerendaGraficzna(in); } public KwerendaGraficzna[] newArray(int size) { return new KwerendaGraficzna[size]; } }; 现在试图在Kotlin中实现它: companion object { @SuppressWarnings("rawtypes") val CREATOR: Parcelable.Creator<KwerendaGraficzna!> = object : Parcelable.Creator<KwerendaGraficzna!> { override fun createFromParcel(`in`: Parcel): KwerendaGraficzna { return KwerendaGraficzna(`in`) } override fun […]

Kotlin反向查找有效的枚举?

我试图找到在Kotlin的枚举上进行“反向查找”的最佳方法。 Effective Java中的一个例子是你在枚举中引入了一个静态映射来处理反向查找。 通过一个简单的枚举将其移交给Kotlin,将使我看起来像这样的代码: enum class Type(val value: Int) { A(1), B(2), C(3); companion object { val map: MutableMap<Int, Type> = HashMap() init { for (i in Type.values()) { map[i.value] = i } } fun fromInt(type: Int?): Type? { return map[type] } } } 我的问题是,这是做这件事的最好方法,还是有更好的办法? 如果我有几个枚举遵循类似的模式呢? Kotlin有没有办法让这个代码在枚举中更加可重用?

Java到Kotlin泛型翻译

我想转移到Kotlin旧的Java项目,并发现有趣的,不能没有痛苦地转换这Kotlin public interface BaseJView<P extends BaseJPresenter> { P createPresenter(); } public interface BaseJPresenter<V extends BaseJView> { void bindView(V view); } 你能提供意见,我怎么能做到这一点?

在Kotlin中使用Singleton的StackOverflowError

谁能告诉,为什么我得到一个java.lang.StackOverflowError使用这个Kotlin类? 第41行是if (instance == null) { class TokenHelper protected constructor() { var token: String? = null var appId: String? = null var installationId: String? = null var userId: String? = null companion object { var instance: TokenHelper? = null get() { if (instance == null) { instance = TokenHelper() } return instance } } } […]

在kotlin注释错误?

这里有两个代码示例 Java的: public class Q { @Retention(RetentionPolicy.SOURCE) @IntDef({LOL.one, LOL.two}) @interface Lol{} public final class LOL{ public final static int one = 1; public final static int two = 2; } public Q(){ q(1); } void q (@Lol int q){ } } 科特林: class Q { @Retention(AnnotationRetention.SOURCE) @IntDef(LOL.one, LOL.two) internal annotation class Lol object LOL { […]

Kotlin为什么不执行自动类型转换?

var a : Double a = Math.sin(10) // error: the integer literal does not conform to the expected type Double a = Math.sin(10.0) //This compiles successfully println(a) kotlin为什么不执行隐式类型转换并强制我们传递确切类型的数据? fun sin(value: Double): Double // at kotlin documentation

Kotlin – IntelliJ项目设置

我想用Kintlin为JVM启动一个使用IntelliJ IDE的新项目,但是我无法获得配置。 我试图按照这个教程 ,之后没有工作(“运行_DefaultPackage”选项甚至没有出现),我开始尝试直观地认为应该做的没有成功。 到目前为止(重复)发生了什么: 我创建了一个新项目,选择“Kotlin – JVM”作为项目类型。 我在第二页上点击Kotlin Runtime的“Create …”按钮,并选择“Copy to:lib”。 我点击“完成”,创建的项目有一个与我的项目同名的模块。 没有默认的源文件或任何配置。 我创建了一个名为“app.kt”的Kotlin文件(我也尝试了其他名称,例如“Main.kt”),并将以下源代码放在: fun main(args: Array<String>){ println("Hello world!") } 我右键单击代码编辑器和左窗格中的文件,找到本教程中提到的“Run'_DefaultPackage'”选项,但未能在其中找到它。 我创建了一个新的Kotlin配置,要求我放入一个“主类”。 看到这个,我把代码改成: public class Main { fun main(args: Array<String>) { println("Hello world!") } } 我编辑我的配置并将主类设置为“Main”,然后运行配置。 它失败,并出现此错误:“错误正在运行:函数'main'在'Main'类中找不到。 我错过了什么?

什么是Kotlin模块?

在Kotlin文档中,他们在internal修改器的文档中提到了某种模块 。 但是我找不到术语模块本身的任何定义。 那么模块是什么意思?

如何在Kotlin中初始化List <T>?

我看到Kotlin有一个List<out E>集合,但我不知道如何初始化它。 在Java中,我可以写: List<String> geeks = Arrays.asList("Fowler", "Beck", "Evans"); 我怎样才能在Kotlin中实现相同?

适用于Android的Kotlin。 烤面包

在Android的不同的Kotlin示例中,我看到烤面包(“Some message …”)或toastLong(“Some long message”)。 例如: view.setOnClickListener { toast("Click") } 据我所知,这是一个活动的扩展功能。 如何定义这个toast()函数和哪里(在什么地方)能够通过项目使用它?