Kotlinで
fun <T> nullable(): T?{
return "something" as? T
}
などと実装すると、
'T'has a nullable upper bound. This means that a value of this type may be null. Using 'T?' is likely to mislead the reader
というwarningが出てきます。つまり、この型パラメータのT
はすでにnullableな型の制約上にあるので、T?
という書き方は読み手に誤解を与えるよ、ということです。
従ってこのT
をそもそもNotNullな型として指定するには
fun <T:Any> nullable(): T? {
return "something" as? T
}
というようにNotNullなAny
型を制約としてつけてあげる必要があります。