我想在 Kotlin 中写出类似的东西。
open class View<P> where P:Presenter<out _this_class_> {
val presenter: P = ...
}
open class Presenter<V> where V: View<out _this_class_> {
val view: V = ...
}
Run Code Online (Sandbox Code Playgroud)
我怎么能正确地做到这一点?
withHandle 给出错误提示“没有足够的信息来推断类型变量 X”。
但如果我使用
val count = jdbi.withHandleUnchecked { handle ->
handle.createQuery("SELECT count(*) FROM levelmaster WHERE `LevelName` = 'Silver' AND `LevelId` >= :ugradingLevel")
.bind("ugradingLevel", ugradingLevel)
.mapTo(Int::class.java)
.findOnly()
}
Run Code Online (Sandbox Code Playgroud)
withHandleUnchecked 它不会抛出任何错误。
这是我的代码:(使用 withHandle)
handle = jdbi.open()
val names = jdbi.withHandle { handle ->
handle.createQuery("SELECT count(*) FROM levelmaster WHERE `LevelName` = 'Silver' AND `LevelId` >= :ugradingLevel")
.bind("ugradingLevel", ugradingLevel)
.mapTo(Int::class.java)
.findOnly()
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读“Functional Kotlin”一书,我刚刚从那本书中尝试了一些关于 Kotlin 并发编程的示例。我有以下并发代码的实现:
package com.freesoft.functional.coroutines
import kotlin.concurrent.thread
class CallbacksMain
class CallbackUserClient(private val client: UserClient) {
fun getUser(id: Int, callback: (User) -> Unit) {
thread {
callback(client.getUser(id))
}
}
}
class CallbackFactClient(private val client: FactClient) {
fun get(user: User, callback: (Fact) -> Unit) {
thread {
callback(client.getFact(user))
}
}
}
class CallBackUserRepository(private val userRepository: UserRepository) {
fun getUserById(id: UserID, callback: (User?) -> Unit) {
thread {
callback(userRepository.getUserById(id))
}
}
fun insertUser(user: User, callback: () -> Unit) {
thread { …Run Code Online (Sandbox Code Playgroud) 我有一个数据类报告
data class Report(var id: Int? = null, var user_name: String? = null)
Run Code Online (Sandbox Code Playgroud)
我有一份报告清单。例如 :
val reports = listOf(
Report(1, "Mike"),
Report(2, "John"),
Report(3, "Ann"),
Report(4, "Mike"),
Report(5, "Bob"),
Report(6, "Carl"),
Report(7, "Donald"),
Report(8, "John"),
Report(9, "Ann"),
Report(10, "Bob"))
Run Code Online (Sandbox Code Playgroud)
如何将此报告列表转换为List<List<Reports>>将使用 RxJava 由 user_name 探查的报告?id 需要的最终变体是这样的:
val reports_grouped_by_user_name = listOf(
listOf(Report(1, "Mike"),Report(4, "Mike")),
listOf(Report(2, "John"),Report(8, "John")),
listOf(Report(3, "Ann"),Report(9, "Ann")),
listOf(Report(5, "Bob"),Report(10, "Bob")),
listOf(Report(6, "Carl")),
listOf(Report(7, "Donald")),
listOf(Report(10, "Bob")))
Run Code Online (Sandbox Code Playgroud)