Tag: 龙目岛

如何与Kapt3一起使用lombok

当我尝试使用Kapt3运行Java和Kotlin android应用程序时: apply plugin: ‘kotlin-kapt’ javac编译失败,无数 error: cannot find symbol 为生成的方法。 这可能是由于kapt无法生成存根导致的: ‘kapt.generateStubs’ is not used by the ‘kotlin-kapt’ plugin 所有前面提到的强迫我使用旧的kapt我可以使用: compileOnly “org.projectlombok:lombok:$lombokVer” annotationProcessor “org.projectlombok:lombok:$lombokVer” kapt “org.projectlombok:lombok:$lombokVer” kapt { generateStubs = true } 然而这在测试编译期间导致失败,因为我也使用数据绑定库: 出了什么问题:执行任务失败:app:compileXDebugUnitTestJavaWithJavac’。 java.lang.RuntimeException:无法解析数据绑定编译器选项。 参数:kapt.annotations:… \ app \ build \ tmp \ kapt \ xDebugUnitTest \ wrappers \ annotations.bscplayDebugUnitTest.txt kapt.kotlin.generated:… \ app \ […]

用于在Kotlin中生成toString()方法的简短语法(用于非数据类)

在Kotlin中,可以为数据类生成toString()方法: data class Foo(…) 但是使用数据类有一些限制,另外Kotlin编译器会生成额外的方法,我不想在我的代码中使用这些方法。 在Java中,您可以通过添加一行代码和@ToString注释来为Lombok生成toString()方法: @ToString public class Foo { … } 不幸的是,Lombok不能和Kotlin一起工作,所以我必须每次手动实现toString()方法: class Foo { … override fun toString(): String { // bunch of code here } } 在Kotlin中有没有简写的语法,或者是一些第三方解决方案?