companion object
не является методом.Фактически, это object
, который является компаньоном для класса Wrapper
, поэтому он не может знать об универсальном типе родительского класса.То же самое относится и к Java:
public class Wrapper<T> {
public static T value; //ERROR
}
В этом companion object
вы можете объявить методы и поля, которые будут static
в мире Java.
class Wrapper<T>
{
companion object
{
fun <T> genericMethod(){
}
}
}
Но имейте в виду, чтотип Wrapper<T>
не связан с типом T
в fun <T> genericMethod()
.