我在将这部分Java转换为Kotlin时遇到了问题:
Publishers.map(chain.proceed(request), response -> {
if (request.getCookies().contains("SOME_VALUE")) {
response.cookie(request.getCookies().get(STATE_COOKIENAME).maxAge(0));
}
return response;
});
map
方法的第二个参数(注意publishers
不是集合)接受函数
。我尝试了几个解决方案,包括提供一个lambda:
Publishers.map(chain?.proceed(request), {
x: MutableHttpResponse<*>!,
y: MutableHttpResponse<*>! -> print("It worked")
})
但这导致:
错误:(32,38)Kotlin:意外标记
错误:(33,38)Kotlin:意外标记
return Publishers.map(chain?.proceed(request), ::processCookie)
private fun processCookie(a: MutableHttpResponse<*>?) {
print("something something something")
}
错误:(31,56)Kotlin:类型不匹配:推断的类型是Kfunction1<@parametername mutablehttpresponse<>?,unit>but function>!,mutablehttpresponse<*>?>!意料之中
对于上下文,我认为在Kotlin中尝试本教程会很有趣。
您没有在lambda中指定返回类型,它是由Kotlin推断的。上一个示例不起作用,因为函数的返回类型是unit
,在Java中是void
。我将尝试以下方法:
return Publishers.map(chain?.proceed(request), ::processCookie)
private fun processCookie(a: MutableHttpResponse<*>?) : MutableHttpResponse<*>? {
print("something something something")
return a
}
如果你写
return Publishers.map(chain?.proceed(request)) {
print("something something something")
it
}
我们在这里使用Kotlin中Lambda的默认参数名-即it
。Kotlin编译器将为您推断类型。在Kotlin中也允许将函数的最后一个lambda参数移到括号之外。
return Publishers.map(chain?.proceed(request), Function<T,R> {
print("something something something")
it
})
其中t
和r
必须用实际类型替换
例外情况。kt: 在科特林: 它在kotlin中工作,函数是内联的。 但是当在Java代码中使用时,它就是不能内联,仍然是一个正常的静态方法调用(从反编译的内容中可以看出)。 像这样的东西:
我正在处理平台频道(PlatformChannels),试图从Kotlin(Kotlin)到Flatter(颤振)进行通信。尝试实际执行颤振平台频道文档中解释的操作,但方向相反: 通道文件颤振平台 其思想是从MainActivity上的ConfigureFlatterEngine函数调用颤振函数。kt级。 为此,我做了,在颤振方面,梅因。dart(颤振的默认示例): 从Kotlin方面来说,我只是
我有一个Kotlin代码: 现在我想从Java类调用这个方法。我不知道该怎么称呼这个。这是我试过的 但它显示了以下错误。
不幸的是: TweetServiceTest.java Hibernateutil.java
问题内容: 我在课堂上有这个功能: 我尝试使用此函数来调用该函数: 问题是编译器希望它看起来像这样: 为什么第一个会导致错误? 问题答案: Swift 2.0更新 :现在,默认情况下,函数的功能与方法相同,并且对于两种方法而言: 第一个参数没有外部名称;和 其他参数的外部名称与内部名称相同。 除此之外,下面的规则仍然适用,只是速记语法已消失。 这是一个更一般的答案:函数在类之外定义为真函数时以及在
嗨,我为tictactoe游戏编写了这个示例代码,除了checkWinner函数之外,其他都正常工作,它接受两个参数ArrayList和currentPlayer来检查胜利者。该函数在每个玩家在tictactoe游戏中查看获胜的点击单元格后调用。我不知道错误在哪里!事先谢谢你