ジェネリクス型のクラスの定義で、タイプパラメータ名が不要なときのいい感じの書き方
sealed class Response<T> {
data class Success<T>(val value: T): Response<T>()
data class Fail<T>(val errorMessage: String): Response<T>()
}
fun <T> fetch(onResponse: (Response<T>) -> Unit) {
val value: T
// 何かしら取得してvalueに入れる
onResponse(Response.Success(value))
}
というような処理を作ったのですが、Response
のT
について
Type Parameter "T" is never used
というwarningが表示されます
(実際、Response
のT
は、その子クラスのT
とは無関係なためその通りですが)。
タイプパラメータの変数自体は使わないもののクラスをジェネリクス型にはしたい場合、のうまい書き方はないでしょうか。
なお処理自体は問題なく動きます。