Tag: kotlin interop

私人获得者和Kotlin财产的公共二传手

如何在Kotlin拥有一个私人的吸气(或没有它),但有一个公共二传手? var status private get 不起作用的错误: Getter visibility must be the same as property visibility 在我的情况下,原因是Java互操作:我希望我的Java代码能够调用setStatus而不是getStatus 。

Jinq在Kotlin – 如何将lambda转换为java SerializedLambda?

我可以在Kotlin有可序列化的lambda吗? 我正在尝试使用Kotlin的Jinq库,但它需要可序列化的lambdaexpression式。 有没有可能的语法? 更新: 我的代码: var temp=anyDao.streamAll(Task::class.java) .where { t->t.taskStatus== TaskStatus.accepted } .collect(Collectors.toList()); 我得到这个错误: Caused by: java.lang.IllegalArgumentException: Could not extract code from lambda. This error sometimes occurs because your lambda references objects that aren’t Serializable. 在lambda中引用的所有对象都是可序列化的(代码在java中没有错误)。 更新2 调试后,似乎kotlin lambda没有被转换成Jinq所需的java.lang.invoke.SerializedLambda来获取信息。 所以问题是如何将其转换为SerializedLambda。

如何在kotlin编程语言中使用如下所述的循环?

我怎样才能让它在kotlin使用for循环? for (double i = 0; i < 10.0; i += 0.25) { System.out.println("value is:" + i); }

将侦听器对象作为函数parameter passing给kotlin

我试图从一个行动的一个监听器传递给一个类(一个适配器)。 在java中(来自Action的代码): private void setListeners() { adapterRecyclerView.setListener( new View.OnClickListener() { @Override public void onClick(View v) { SomeCodehere…. } }); } (来自适配器的代码) public void setListener(View.OnClickListener listener) { this.listener = listener; } 有用。 现在我正在试着去kotlin。 我首先翻译行动(翻译行动kotlin): private fun setListeners() { // !! is not fine i know adapterRecyclerView!!.setListener { v -> SomeCodehere…. } } 此时仍然有效。 使用适配器的代码仍然在java和kotlin类中的代码。 现在我把适配器翻译成kotlin: fun […]

如何在基本types中使用kotlin中的@Autowired或@Value等Spring注解?

使用类似Spring的注释自动assembly非基元 @Autowired lateinit var metaDataService: MetaDataService 作品。 但是这不起作用: @Value(“\${cacheTimeSeconds}”) lateinit var cacheTimeSeconds: Int 有一个错误: 基元types不允许使用lateinit修饰符。 如何autotire primitve属性到kotlin类?

是否有可能使用Kotlin构建完整的Node.js Web应用程序?

如果我理解正确,随着Kotlin 1.1的发布 ,我们可以将JavaScript设置为 Kotlin项目的JavaScript 编译目标 。 是否有可能(或可行)使用Kotlin代码编写完整的Node.js应用程序,如快速网络服务器? 如这个问题所示,我们可以将Node模块导入到Kotlin类中: external fun require(module: String): dynamic val express = require(‘express’) …这似乎可以创建一个应用程序使用: val app = express() 这是Kotlin建立快速应用程序的方式吗? 或者,我应该按照文档中的说明申报一个class级: @JsModule(“express”) external class Express { … } 为Node.js应用程序开发建立一个Kotlin项目的规范方法是什么? Kotlin的JavaScript互操作性足够强大,能够继续走下去吗,还是会比它的价值更麻烦呢?

Kotlin:如何将数组传递给Java注释

我想从package io.dropwizard.validation;使用@OneOf注解package io.dropwizard.validation; Java用法: @OneOf(value = {“m”, “f”}) Kotlin用法:??? 我试过这个: @OneOf(value = arrayOf(“m”, “f”)) 和这个: @OneOf(value = [“m”, “f”]) 我得到的是: types推断失败。 期望的types不匹配: 必需:字符串 find: Array Kotlin版本:1.1.2-2

数据绑定:带有lambda值的ObservableField不能编译

我试图通过计算将一个参数作为参数的lambda来定义View的可见性。 顺便说一下 , 我正在使用Kotlin 。 在我的ViewModel我有: val customerPropVisibility: ObservableField<(KProperty1) -> Int> = ObservableField( { _ -> // body of the lambda }) 该View的绑定expression式如下所示: android:visibility=”@{vm.customerPropVisibility.invoke(title)}” vm和title被正确地声明为布局data标签中的variables。 在编译时,我得到两个错误: 1)不兼容的types:对象不能转换为Function1 2)不兼容的types:对象不能被转换为整数 第一种types只有一个错误,第二种types有几个错误。 第二种types的错误数量与布局xml文件中lambda的调用数量相同。 我试图解决这个问题: 显然,types1的错误可以通过重写ObservableField的get()方法来解决(使方法明确地返回Function1 )。 这是有效的,但是很难看,编译器在推断customerPropVisibility的types时应该这样做。 当然,这里有些不对劲。 types2的错误对我来说是一个谜,导致函数types(my lambda)显式地返回Int。 我认为这与Kotlin / Java的互操作性有关。 如果您遇到同样的问题,请分享解决问题的经验。 编辑: 由于这个bug还没有解决,我使用稍微不同的方法来达到相同的结果: 而不是将ObservableField的值设置为lambda,我将其设置为函数引用( ::getVisibility ),如下所示: fun getVisibility(prop: KProperty1): Int = propVisibilityValues[prop] ?: View.GONE val […]

如何在Kotlin中实现这个Java接口?

既然Kotlin没有原始的东西,那怎么能实现呢? public interface A { Object get(Integer i); Object get(int i); } 我无法更改Java代码,因为它是库中已编译的类文件。

任何人都可以在这里详细解释Kotlin / Native微调应用程序项目结构? 还有关于不同模块如何工作的细节

我想具体了解各个客户端模块如何使用通用模块。 哪些是所有客户端和服务器共享的真正常见部分。 谢谢。