Tag: kotlin

使用Kotlin合成属性

我正在Kotlin试用Vert.x。 我有以下一段代码: val deploymentOptions = DeploymentOptions() deploymentOptions.setConfig(JsonObject().put("http.port", 8081)) 一切工作正常。 但是,IntelliJ IDEA在第二行报告我应该使用“Kotlin合成属性”。 任何想法如何在这种情况下做到这一点。 另外,我正在使用Maven。 解: deploymentOptions.config = JsonObject().put("http.port", 8081) 谢谢您的帮助 :)

奇怪的“未解决的参考:”升级到Kotlin 1.0.5后的错误

我有一个包含2个模块的项目。 一个包含我的java代码的Java模块。 还有一个包含我的Kotlin代码的Kotlin模块。 Kotlin模块依赖于java模块。 也就是说,Java模块中没有引用Kotlin模块的东西。 但是Kotlin模块依赖于Java模块中的Java类。 这个项目我还没有打开6个月左右。 它之前工作得很好。 这是kotlin 1.something。 不管六月份的最新情况如何 现在我已经更新到最新的Kotlin版本。 但是我的一个java模块java类不能再从Kotlin模块中引用。 它只是其中的一个类,Kotlin模块很好地引用了来自Java模块的其他很多类。 我希望有人能告诉我发生了什么事。 也许Kotlin在过去的6个月里有了一些变化,导致了这一点? 我在Kotlin模块中引用JSBot的所有Kotlin文件中得到的消息是这样的: Error:(191, 39) Kotlin: Unresolved reference: JSBot kt文件中的JSBot导入是正确的。 即使在相同的Java包中,来自Java模块的其他类也可以被识别并编译而不会出错。 这里是JSBot.java声明(在Java模块中): public abstract class JSBot extends Evaluable implements Name { … } 其他抽象的java类可以从Kotlin模块中很好的引用。 所以我不能真正理解发生了什么。 这只是一个Java类。 但是,在早期的Kotlin版本(v1.0到六月份的最新版本)中,它编译得很好。 我现在只是得到这个错误。 我没有改变任何代码。 只更新到kotlin插件1.0.5 谁能给我一些提示怎么办? 我卡住了,不知道从哪里去。 我更新我的maven .pom从1.0.0 1.0.5,但是没有帮助。

editText获取文本kotlin

如何在kotlin中获取editText并用吐司显示。 var editTextHello = findViewById(R.id.editTextHello) 我试过这个,但显示对象 Toast.makeText(this,editTextHello.toString(),Toast.LENGTH_SHORT).show()

Kotlin和parallelStream来阵列

我觉得我越来越偏向了。 我正在尝试利用Java parallelStream出于性能原因。 函数Specimen.pick()采样并返回一个Specimen的实例。 我想用parallelStream在更换池时将其并行化。 var pool: Array<Specimen> = Array(100_000) .. 这就是我在Kotlin写的: pool = pool.asList().parallelStream().map { Specimen.pick(pool, wheel, r.split()) }.toArray(Specimen::new) 哪些错误出来::新 相反,我必须在列表和数组之间来回拼凑: pool = pool.asList().parallelStream().map { Specimen.pick(pool, wheel, r.split()) }.collect(Collectors.toList()).toTypedArray() 哪些工作,但似乎资源浪费,而不是直接进入阵列。 如果我让IntelliJ尝试Kotlinize这个Java的例子: Java的: Person[] men = people.stream() .filter(p -> p.getGender() == MALE) .toArray(Person[]::new); IntelliJ转换: val men = people.stream() .filter({ p -> p.getGender() === MALE }) […]

Kotlin编译器返回:未解决的引用:Spring 5.0中的springframework

我试着开始使用Kotlin和Spring 5.0一起玩,但是我遇到了Kotlin编译器没有认识到任何对Spring的引用的问题: [错误]无法执行目标org.jetbrains.kotlin:kotlin-maven-plugin:1.1.1:编译(编译)项目kotlin-mvc-project:编译失败:编译失败: [错误](文件位置):[7,12]未解决的参考:springframework 我正在使用Spring的里程碑版本Spring 5.0.0.M5和Kotlin版本1.1.1(在我的kotlin编译器和IntelliJ Kotlin插件上)。 在我的任何Kotlin文件中,IDE没有强调编译错误,但运行kotlin编译器似乎根本没有看到Spring 5.0。 有没有人有任何想法如何解决这个问题? 我在这个项目中使用Maven,我已经附上了我的POM作为参考: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kotlin-mvc-project</groupId> <artifactId>kotlin-mvc-project</artifactId> <version>1.0-SNAPSHOT</version> <properties> <kotlin.version>1.1.1</kotlin.version> <spring.version>5.0.0.M5</spring.version> </properties> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/libs-milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-compiler</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> […]

如何将Java文件转换为Kotlin文件?

我正在通过Kotlin为Android开发者探索Kotlin。 其中一个步骤是使用Convert Java File to Kotlin File来查看Java和Kotlin文件的比较。 我很好奇这个功能是如何工作的。 该工具是从Java输入创建一个抽象语法树,然后转换到Kotlin? 还是在做更简单的事情?

与Kotlin重载的构造函数

因为我有一个User类有2个参数:名字,姓氏。 所以我的kotlin类是: data class User(val first_name:String, val last_name:String) 现在我想要一个只接受first_name的构造函数,或者你可以只说一个参数。 我怎样才能用Kotlin来定义它? 我知道我们可以通过默认值,这样我们可以忽略第二个参数,但是我们怎样才能写出多个构造函数呢?

Android Room Persistences库和Kotlin

我正在尝试使用Kotlin和Room Persistance Library编写一个简单的应用程序。 我遵循Android Persistance codelab中的教程 。 这是我在Kotlin的AppDatabase类: @Database(entities = arrayOf(User::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userModel(): UserDao companion object { private var INSTANCE: AppDatabase? = null @JvmStatic fun getInMemoryDatabase(context: Context): AppDatabase { if (INSTANCE == null) { INSTANCE = Room.inMemoryDatabaseBuilder(context.applicationContext, AppDatabase::class.java).allowMainThreadQueries().build() } return INSTANCE!! } @JvmStatic fun destroyInstance() […]

Java Lambda到Kotlin

我正在用Kotlin构建我的代码。 我已经偶然发现了一个在Kotlin中使用Lambda的问题,具体如下: Java代码: ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true)); 使用通用接口实例 ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(new UndertowBuilderCustomizer() { @Override public void customize(Builder builder) { builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true); } }); 我在Kotlin的代码 val c: UndertowEmbeddedServletContainerFactory = (container as UndertowEmbeddedServletContainerFactory) // Calling the Lambda c.addBuilderCustomizers{ (b: Builder) -> b.setServerOption(UndertowOptions.ENABLE_HTTP2, true) } 这给我一个语法错误: 在这一行有多个标记 – 只允许将值作为可变参数传递在括号内的参数列表中 – 不能推断出这个参数的类型。 请明确指定。 什么可能是正确的语法呢?

平等在Kotlin

我正在学习Kotlin,拥有C ++和Java背景。 我期待以下打印true ,而不是false 。 我知道==映射到equals 。 equals的默认实现是否不比较每个成员,即firstName和lastName ? 如果是这样,它不会看到字符串值相等(因为==地图再次equal )? 显然有一些与平等与身份相关的东西,我还没有在科特林的权利。 class MyPerson(val firstName: String, val lastName: String) fun main(args: Array<String>) { println(MyPerson("Charlie", "Parker") == MyPerson("Charlie", "Parker")) }