В моем коде у меня есть метод publishMessage
, требующий расширения типа из класса Message
.В этом методе вызывается publish
, для которого требуется message
типа T
.
Это дает ошибку> Несоответствие типов;найдено Message
, обязательно T
.
Имеет ли это отношение к T
, который должен быть расширением класса Message
, который объявлен с помощью метода?Я не понимаю, почему этого нельзя сделать.
В моей голове такой параметр с типом T
может быть любым
Myclass
fun <T : Message> publishMessage(topic: String, type: Class<T>, message: Message) {
val node = findOrCreateNode(topic, type)
node.publish(message) // Type mismatch; found `Message`, required `T` .
}
Класс узла
fun publish(message: T) {
// Implementation
}