Допустим, у меня есть набор из двух pojo, например, так:
data class Test (
var id : Long? = null
)
data class TestOther (
var id : Long = 0,
var isCool : Boolean = false
}
, а затем у меня есть инфиксная функция, например, так:
infix fun <T : Any?> KProperty<T>.equal(rhs : KProperty<T>) = BinaryExpression<Boolean>(this, rhs, EQUALS)
, тогда это прекрасно работает, когда я 'd ожидает:
Test::id equal TestOther::id
но так же, так как T - это все типы, расширяющие Any?:
Test::id equal TestOther::isCool
В любом случае можно указать общие ограничения, такие, что могут быть обнуляемые и не обнуляемые типыможно сравнивать, но объекты разных типов не могут без необходимости определять перегрузку для каждого возможного конкретного типа?