Kotlin 使参数能够接受多个类型作为输入,同时比使用;任何;
我有一个方法,它接受Kotlin 使参数能够接受多个类型作为输入,同时比使用;任何;,kotlin,Kotlin,我有一个方法,它接受值,该值必须是布尔型、浮点型、整型、长型、或字符串。有没有办法让这个方法只接受value的那些类型,而不是像我用when()语句那样接受Any并处理不正确的值 fun putValue(key: String, value: Any) { when (value) { is Boolean -> putBoolean(key, value) is Float -> putFloat(key, valu
值
,该值必须是布尔型
、浮点型
、整型
、长型
、或字符串
。有没有办法让这个方法只接受value
的那些类型,而不是像我用when()
语句那样接受Any
并处理不正确的值
fun putValue(key: String, value: Any) {
when (value) {
is Boolean -> putBoolean(key, value)
is Float -> putFloat(key, value)
is Int -> putInt(key, value)
is Long -> putLong(key, value)
is String -> putString(key, value)
null -> return
}
}
它们唯一的共同接口(在继承层次结构的最底层)是。因此,您可以使用上限限制
值的类型,如下所示:
fun <T: Comparable<T>> putValue(key: String, value: T?) {
when (value) {
is Boolean -> println("Boolean")
is Float -> println("Float")
is Int -> println("Int")
is Long -> println("Long")
is String -> println("String")
null -> return
}
}
value(键:字符串,值:T?){
何时(值){
is Boolean->println(“Boolean”)
是Float->println(“Float”)
是Int->println(“Int”)
is Long->println(“Long”)
is String->println(“字符串”)
空->返回
}
}
它们唯一的共同界面(继承层次结构最底层)是。因此,您可以使用上限限制值的类型,如下所示:
fun <T: Comparable<T>> putValue(key: String, value: T?) {
when (value) {
is Boolean -> println("Boolean")
is Float -> println("Float")
is Int -> println("Int")
is Long -> println("Long")
is String -> println("String")
null -> return
}
}
value(键:字符串,值:T?){
何时(值){
is Boolean->println(“Boolean”)
是Float->println(“Float”)
是Int->println(“Int”)
is Long->println(“Long”)
is String->println(“字符串”)
空->返回
}
}
您可以重载函数,以便允许的类型在编译时可供编译器使用
步骤:
删除当前的putValue
功能
将所有现有的特定于类型的函数从putXXX
重命名为putValue
(它们都将具有相同的名称,并且将在其参数类型上重载)
您可以重载函数,以便允许的类型在编译时可供编译器使用
步骤:
删除当前的putValue
功能
将所有现有的特定于类型的函数从putXXX
重命名为putValue
(它们都将具有相同的名称,并且将在其参数类型上重载)