我在IDEA上评估Kotlin,使用多平台选项,标记为实验(并使用Gradle)。 我可以开发和运行共享,JVM和JS代码确定,但我的问题是编译测试程序在TestNG下执行。 从IDEA和控制台运行:compileTestKotlinCommon任务,它会清除并重新生成预期的输出目录(build / classes / kotlin / test / …,但仅放置kotlin_metadata文件。 在发布配置细节之前,有没有人知道IDEA选项的“实验”标签是否意味着我在这里打破了新的局面,而我正在尝试的甚至可能还没有工作呢? 我有一种感觉,应该有一些从Kotlin测试类生成的JVM类文件,测试用具可以执行,但是不能看到IDEA生成的Gradle配置如何生成这些文件。 我应该继续尝试,还是只是find解决办法?
我目前有2个数组,都包含5个对象。 所有对象都包含Intvariables。 样本数据: data class Demo(val number: Int, val name: String) val a = Demo(12, “a”) val b = Demo(1, “b”) val c = Demo(3, “c”) val d = Demo(5, “d”) val e = Demo(17, “e”) val array1 = arrayOf(a,b,c,d,e) val f = Demo(3, “f”) val g = Demo(8, “g”) val h = Demo(15, “h”) […]
我已经阅读了这本书(Kotlin in Action,MEAP),关于types投影和星型投影的文档和文章,但是这些投影似乎仍然写得很复杂。 有人能以简单的方式解释投影背后的想法吗? 有一些适当的例子会很好。 提前致谢
是否有可能编写Java的等价物 interface Foo { public static final INSTANCE = new Foo {}; } 在Kotlin? 如果Foo是一个class,我可以使用: class Foo { companion object { @JvmField val INSTANCE = object : Foo() {} } } 但与一个接口,它给出了一个错误: JvmField无法应用于接口的伴随对象中定义的属性 @JvmStatic也不起作用。
这是我现在的代码: private val EXTRA_IS_REFRESHING = “IS_REFRESHING” private var isRefreshing: Boolean = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) isRefreshing = if (savedInstanceState != null) savedInstanceState!!.getBoolean(EXTRA_IS_REFRESHING, false) else false } Kotlin有没有更好的方法来写最后一行?
我需要知道如何将函数实现到Kotlin中的ConstraintLayout。 我需要这样的东西: fun applyCustomPropeties(){ //some stuff } val rootLayout = findViewById(R.id.rootLayout) rootLayout.applyCustomPropeties() 谢谢。
我已经在Eclipse中安装了Kotlin(它必须是Eclipse,而不是JetBrains),并启动了一个Kotlin项目,没有任何问题。 现在我想将JPA支持添加到这样的项目中,但是我不能将任何已经存在的Kotlin类添加到我的persistent.xml 。 下面是这些类中的一个,已注释为保留: package my.project.domain import java.util.Date import javax.persistence.Column import javax.persistence.Entity import javax.persistence.Id import javax.persistence.Table import javax.persistence.Temporal import javax.persistence.TemporalType @Entity @Table(name = “person”) open class Person( @Id @Column(name = “id_person”) var Id: Long? = null, @Column(name = “name”, length = 150, nullable = false) var Name: String? = null, @Temporal(TemporalType.DATE) @Column(name = “creation_date”, nullable […]
我如何修改Kotlin中的循环variables? 对于我的具体情况,我有一个for循环,其中,在某些情况下,我想跳过下一个迭代: for(i in 0..n) { // … if(someCond) { i++ // Skip the next iteration } } 但是,当我尝试这个时,我被告知“val不能被重新分配”。
我和spring一起面临着kotlin的一些问题。 我有一个控制器bean(没有接口btw),它有一个自动连线的服务bean通过主构造函数。 它工作完美,除非我使用控制器缓存注释。 显然弹簧缓存生成一个委托类下的缓存处理。 我的代码如下所示: @RestController @RequestMapping(“/regions/”) open class RegionController @Autowired constructor(val service: RegionService) { @RequestMapping(“{id}”, method = arrayOf(RequestMethod.GET)) @Cacheable(cacheNames = arrayOf(“regions”)) fun get(@PathVariable id: Long): RegionResource { return this.service.get(id) } } 现在的问题是执行该方法时出现空指针exception,实际上this.service为null ,在技术上是不可能的,因为它是kotlin中的非nullvariables。 我假设Spring生成的类代理使用空值而不是autowired bean初始化类。 这一定是使用kotlin和spring的常见错误。 你是怎么回避这个问题的?
我想添加加载animation自定义对话框,我能够做到这一点在Java中,但我有问题做同样的kotlin它给了我下面的错误 E/AndroidRuntime: FATAL EXCEPTION: main android.util.AndroidRuntimeException: requestFeature() must be called before adding content at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:229) at com.android.internal.app.AlertController.installContent(AlertController.java:234) at android.app.AlertDialog.onCreate(AlertDialog.java:337) at android.app.Dialog.dispatchOnCreate(Dialog.java:355) at android.app.Dialog.show(Dialog.java:260) at com.autodroid.demo.MainActivity.show(MainActivity.kt:66) at com.autodroid.demo.MainActivity$onCreate$1.onClick(MainActivity.kt:32) at android.view.View.performClick(View.java:4204) at android.view.View$PerformClick.run(View.java:17355) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) 以下是我在kotlin中创建对话框的代码 val dialogBuilder = AlertDialog.Builder(activity) val inflater = activity?.layoutInflater val dialogView = inflater?.inflate(R.layout.newly_dialog, null) dialogBuilder.setView(dialogView) val tvPopText = dialogView?.findViewById(R.id.tvPopText) as […]