如何在没有spring-boot的情况下在spring-webflux中加载配置?

我只是用spring webflux 5.0.0和Kotlin做了一些实验,并且从application.yml加载配置有问题 对于基础项目,我从这个例子spring-kotlin-functional开始 但是,只有手动加载Bean和路由,没有任何来自配置文件的加载或例如如何以这种方式实现@ConfigurationProperties类的模拟。 我已经尝试在豆部分采取环境: data class DbConfig( var url: String = “”, var user: String = “”, var password: String = “” ) fun beans(): BeanDefinitionDsl = beans { bean { //try to load config from path=db to data class DbConfig env.getProperty(“db”, DbConfig::class.java) } bean() //controllers bean { StatsController(ref()) } bean { UserController(ref()) […]

用lambda参数链接方法是什么?

我正在研究Kotlin编码挑战,并提出了一个类似这样的解决方案: val x = listOf(1, 2, 3) .fold(“”) { acc, i -> acc + someLookupFunction(i) }.let { // something } 以上是我希望如何格式化。 但是,使用IntelliJ自动格式化程序时,它坚持认为代码应该如下格式化: val x = listOf(1, 2, 3) .fold(“”) { acc, i -> acc + someLookupFunction(i) }.let { // something } 我的第一个想法是,这是一个错误,但实际上我认为这只是模糊的。 格式器必须认为let是lambda本身的函数调用,而不是fold的结果。 为了证实这一点,我改变了这个: val x = listOf(1, 2, 3) .fold(“”, { acc, i -> […]

如何在Android Studio 3.1 Canary 3中添加Gradle的Kotlin插件

如何在Android Studio(3.1版Canary 3)中集成Gragle的Kotlin插件? 我已经搜索了网络和这个文档,但没有明确的答案。 我不确定是否必须依靠这个网站和其他网站上的现有答案,因为在Android Studio 3.1 Canary 3中Kotlin集成已经有很多变化。

Kotlin(JVM)标准库元素的未解决参考

在IntelliJ添加gradle到现有的Kotlin项目之后,我开始引用一些标准库元素的问题。 例如,Kotlin Stringtypes被识别,但mutableMapOf给我 Error:(11, 60) Kotlin: Unresolved reference: mutableMapOf 另一个是: Error:(9, 78) Kotlin: Unresolved reference: Array 编译期间。 它们在IDE中也被标记为红色(不是孤立的,只能编译) 在IntelliJ中出现的另一个错误是Kotlin not configured ,没有配置Kotlin选项 这是我的gradle构建文件: apply plugin: ‘kotlin’ group = “com.serguei.myproject” version = “1.0” buildscript { ext.kotlin_version = ‘1.2.10’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } repositories { mavenCentral() } dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version” […]

未解决的参考:kotlinx

我正尝试在Android Studio中尝试Kotlin和Kotlin Android扩展。 我已经在Ubuntu 14.04上的Android Studio v 1.5.1以及OS X El Capitan上的Android Studio v 1.5.1上尝试了这一点,获得了相同的结果。 这是我在做什么: 我安装了Kotlin插件1.0.0-beta-35950-IJ141-11 创建一个新的空白Android项目 将MainActivity文件转换为Kotlin(通过help-> findaction->将文件转换为kotlin) 为Kotlin配置项目 然后我进入生成的content_main.xml文件并为“Hello World!”添加一个id(hello)。 TextView中。 然后在转换的MainActivity中添加一行来设置TextView。 (如下所示)。 然后Android Studio会提示我(通过alt-enter)插入这一行(如下所示) import kotlinx.android.synthetic.main.content_main.* 所以在这一点上一切似乎都很好 但是当我尝试编译这个我得到 Unresolved reference: kotlinx Unresolved reference: kotlinx Unresolved reference: hello 请注意,我没有安装Kotlin Android扩展程序插件。 就在几天前,现在应该包含在主插件中,并被标记为过时。 (事实上​​,如果您在安装最新的插件时尝试安装它,则不会安装任何新的插件) 任何人看到我在做什么错了? 主要活动 import android.os.Bundle import android.support.design.widget.FloatingActionButton import android.support.design.widget.Snackbar import android.support.v7.app.AppCompatActivity import […]

在Swift中将字符加/减为Int

我需要实现一个算法,通过计算一个字符串的模来检查输入是否有效。 Kotlin中的代码: private val facteurs = arrayOf(7, 3, 1) private fun modulo(s: String): Int { var result = 0 var i = -1 var idx = 0 for (c in s.toUpperCase()) { val value:Int if (c == ‘<') { value = 0 } else if (c in "0123456789") { value = c – '0' } […]

在Scala 2.10中泛化的generics

在Scala中缺乏具体的generics是最让我感到困惑的,因为简单的东西不能使用复杂的构造来实现。 Kotlin和Ceylon都支持泛化的generics,所以它绝对可以在JVM之上这样做。 过去有人说,如果没有JVM的改变,Scala就不能支持它们,但是现在Scala 2.10被传言对于物化的支持有限。 所以我的问题是: 我们可以期望在Scala 2.10中实现物化,例如,我能否多次实现一个通用的特性 ? 它是多么有限? 如果斯卡拉2.10的物化结果比科特林和锡兰更有限。 这是为什么 ?

“意外覆盖:以下声明具有相同的JVM签名”在实现Java接口时

我遇到了以下错误,试图扩展RuntimeException,并从我的Kotlin代码实现Java中定义的GraphQLError接口。 这是错误的: 意外覆盖:以下声明具有相同的JVM签名(getMessage()Ljava.lang.string;): public open fun (): String? defined in NegativeCountException public open fun (): String? defined in NegativeCountException public open fun getMessage(): String? defined in NegativeCountException public open fun getMessage(): String? defined in NegativeCountException 以下是我的代码: class NegativeCountException() : RuntimeException(), GraphQLError { override fun getMessage(): String? { TODO(“not implemented”) } } 其中GraphQLError是一个接口,在Java中定义,如下所示: public interface GraphQLError […]

选项+进入快速修复不工作在最新的Android工作室

Option + Enter快速修复似乎在Kotlin文件中工作得很好。 我可以使用它来即时生成方法,但在java文件中键击完全被忽略。 我将键盘映射重置为默认值,恢复了检查的默认值,并使AndroidStudio缓存失效并重新启动。 我不确定如何在3.0.1上重新启用此设置,内部版本号为171.4443003。 有谁知道为什么这可能会停止工作,或者我可以做些什么来重新启用它?

Java音频不会以正确的参数启动TargetDataLine

我有一个正确使用48000采样率,24位和1个通道的麦克风。 所以我将这些数据提供给AudioSystem.isLineSupported()并得到一个false 。 我试着喂8位而不是24位,它的工作原理。 但音频中有一个奇怪的背景嘶嘶声,所以我猜这不是我的事情。 问题:如何调试发生了什么? 我知道一个事实,即我所喂的设置是正确的,那么它会是什么呢? 我正在使用的代码(是的,它是Kotlin): fun main(args : Array) { var line: TargetDataLine? = null val thread = Thread(Runnable { val format = AudioFormat(48000f, 24, 1, false, false) val info = DataLine.Info(TargetDataLine::class.java, format) if (!AudioSystem.isLineSupported(info)) { System.out.println(“Failed”) } else { line = AudioSystem.getLine(info) as TargetDataLine line?.open(format) line?.start() val ais = AudioInputStream(line) AudioSystem.write(ais, […]