class random() {
inline fun <reified T> randomOrDefault(defalutAction: () -> T): T? {
var objects = listOf(
ObjectClass1("ob1", 11),
ObjectClass2("ob2", 22),
ObjectClass3("ob3", 33),
)
var randomObj = objects.shuffled().first()
println("你随机生产的对象是:${randomObj}")
return randomObj.takeIf { it is T } as T? ?: defalutAction()
}
}
fun main() {
random().randomOrDefault<ObjectClass1> {
println("随机类型不匹配,补救措施!")
ObjectClass1("补救Ob1",11)
}
}
随机运行第一次结果(与ObjectClass1不匹配):
你随机生产的对象是:ObjectClass2(name=ob2, age=22)
随机类型不匹配,补救措施!
随机运行第二次结果(与ObjectClass1匹配):
你随机生产的对象是:ObjectClass1(name=ob1, age=11)
kotlin语言关键字reified
最新推荐文章于 2024-07-08 23:07:53 发布