在我的Kotlin项目中,我有一些Java代码要转换成Kotlin。 将Java文件转换为Kotlin的菜单项被禁用,因为它不是我想要转换的整个文件。 如何将Java代码转换为Kotlin?
在Kotlin中 ,当使用kotlinx.android.synthetic来访问View (例如Button )时, setEnabled()函数是否丢失? isEnabled()函数仍然存在。 我怎么能setEnabled() ?
我有一个示例Java代码使用方法引用,我想重写到Kotlin。 Java版本使用方法参考,解决方案简短明了。 但另一方面,我不能在Kotlin中使用方法引用。 我设法编写的唯一版本是下面介绍的一个。 看起来像Function3 { s: String, b: Boolean, i: Int -> combine(s, b, i) }可以用更简洁的方式编写(如果可能的话,方法引用将是完美的)。 我是Kotlin新手,所以我会感激任何线索。 Java的 import io.reactivex.Observable; public class TestJava { Observable strings() { return Observable.just(“test”); } Observable booleans() { return Observable.just(true); } Observable integers() { return Observable.just(1); } void test() { Observable.combineLatest(strings(), booleans(), integers(), this::combine); } double combine(String s, boolean […]
我正在开发一个简单的Android应用程序,它应该使用REST API与服务器通信。 客户端和服务器都使用kotlin,并使用Jackson和API序列化json,类似于: class xRequest { .. } class xResponse { .. } 客户端和服务器都有自己的git仓库,我使用Android Studio和Idea分别使用它们。 这导致类声明重复,因为他们都需要知道API。 什么是摆脱重复的最好方法? 我可以将API移到第三个项目,然后构建 – 发布 – 添加依赖项,但在开发过程中这是很多工作。 将它们移动到单个项目是否是一个好主意,所以它会看起来如此: my project api android-client server 谢谢
有以下代码: fun doSomething(): List { val test: List = arrayListOf(“test1”, “test2”) return test as List } 有没有办法抑制在最后一行出现的未经检查的转换警告? 我试图在方法级别使用标准的Java方法@SuppressWarnings(“unchecked”) ,但它不起作用。 谷歌搜索也导致我这个线程 ,声称解决方案是使用@suppress(“UNECHECKED_CAST”) 。 不幸的是IntelliJ不知道@suppress注释,所以这不起作用(可能是因为该function在某个时候被删除,因为该线程已经有几个月了)。
在混合应用程序中,多个Activity / Fragment实例嵌套自己的ReactRootView共享一个ReactInstanceManager实例,似乎没有官方的方式为每个Activity / Fragment实例注入本地模块。 就本质而言,本地模块是单独的,就像驻留在.js文件中的javascript模块一样。 如果在同一个Fragment不同实例中运行的JS代码想要访问Java / Kotlin端与Fragment的本地属性进行交互,那么这不是预期的行为。 我尝试使用ReactInstanceManager registerAdditionalPackages()方法,但它失败,像下面的断言错误,如果多个Fragment s / Activity s同时使用。 “Extending native modules with non-matching application contexts.” 这不是线程安全问题,而是registerAdditionalPackages()实现的设计结果。 有没有其他的方法,如果是的话,你如何访问JS端的注入模块?
我在项目(版本1.0.0)中有Android Room Persistence库,并将编译选项设置为1.8。 当项目构建完成时,我得到这个警告: 警告:注释处理器“android.arch.persistence.room.RoomProcessor”支持的源版本“RELEASE_7”小于“源”1.8 一切正常,但这个警告让我烦恼。 如何删除它? 添加这个依赖dosn’t删除警告,我不使用其他架构组件。 “android.arch.lifecycle:common-java8:1.0.0”
我们必须写这个扩展名为.java的行,虽然它的扩展名是.kt我认为Kotlin文件转换成了java文件,但是java也转换了字节码,所以我们也可以使用.class文件如果Kotlin代码转换成java码。 NextActivity::class.java 到 NextActivity::class.kt //not worked btn?.setOnClickListener { startActivity(Intent(this, NextActivity::class.java)) } 所以问题是为什么我们在NextActivity::class.java编写.java 问题出现在这里 。
我试图将一个Swift脚本移植到Kotlin,但是它并没有像预期的那样工作,代码所做的是在条件为真(需要解析器)时使用字符串。 在Swift中它可以正常工作,但是在Kotlin中却不行(我刚刚在一个月前开始使用Kotlin,所以也许我错过了一些东西)。 迅速 extension String { @discardableResult public mutating func consumeWhile(test: (String) -> Bool) -> String { var chars = [Character](self.characters) var result = “” while chars.count > 0 && test(String(chars[0])) { result.append(chars.remove(at: 0)) } self = String(chars) return result } } 科特林 fun String.consumeWhile(test: (String) -> Boolean): String { if (isEmpty()) return “” val […]
我开始在windows上使用kotlin,我正在执行使用命令行编译器的步骤 尝试编译(并在我的系统的路径中添加bin目录)后,我得到以下错误: 命令编译 : $ kotlinc hello.kt -include-runtime -d hello.jar 错误 : “”Java”” is not recognized as an internal or external command, program or batch file 在我的Windows CMD。 我需要在我的电脑上安装java。 从kotlin开始?