Dog::age
- это значение (типа KProperty1<Dog, String>
), а не тип.В промежутке между <
и >
вам нужно указать тип или вы должны полностью его опустить, и тип будет выведен (это то, что происходит в первых двух строках).
Таким образом, эквивалентом fun
будет
class ReflectionHelper<P: KProperty1<*, *>>(input: P) { ... }
val helper2 = ReflectionHelper(Dog::age)
Если вам не нужен input: P
в качестве параметра, вам нужно будет явно указать P
обадля fun
и для class
.