Java Kotlin型方差与恒星投影
我读过这本书(Kotlin in in Action,MEAP),文档和关于类型投影和恒星投影的文章,但投影似乎写得非常复杂。有人能用一种简单的方式解释投影背后的想法吗?最好有一些合适的例子。Java Kotlin型方差与恒星投影,java,generics,kotlin,Java,Generics,Kotlin,我读过这本书(Kotlin in in Action,MEAP),文档和关于类型投影和恒星投影的文章,但投影似乎写得非常复杂。有人能用一种简单的方式解释投影背后的想法吗?最好有一些合适的例子。 提前感谢泛型可能是每种编程语言中最具智慧的话题。如果您了解Java,您将很容易学会Kotlin泛型: 在Java中,类型投影反映到 如果您不懂Java,请再次阅读《Kotlin in Action》一书的第9章。类型差异在这里得到了很好的解释。但是,关于恒星投影的部分中关于清单9.19(第251页)的
提前感谢泛型可能是每种编程语言中最具智慧的话题。如果您了解Java,您将很容易学会Kotlin泛型:
- 在Java中,类型投影
反映到
interface FieldValidator<in T> {
fun validate(input: T): Boolean
}
object DefaultStringValidator : FieldValidator<String> {
override fun validate(input: String) = input.isNotEmpty()
}
val validators = mutableMapOf<KClass<*>, FieldValidator<*>>()
validators[String::class] = DefaultStringValidator
接口字段验证程序{
趣味验证(输入:T):布尔值
}
对象DefaultStringValidator:FieldValidator{
override-fun-validate(输入:字符串)=input.isNotEmpty()
}
val validators=mutableMapOf()
验证器[String::class]=DefaultStringValidator
不确定,但可能所有这些都是书中使用的Kotlin v1.0中的一个问题。我已经用v1.2.50对它进行了测试
interface FieldValidator<in T> {
fun validate(input: T): Boolean
}
object DefaultStringValidator : FieldValidator<String> {
override fun validate(input: String) = input.isNotEmpty()
}
val validators = mutableMapOf<KClass<*>, FieldValidator<*>>()
validators[String::class] = DefaultStringValidator