Size: a a a

2019 February 28

s

shk729 🇬🇧🇷🇺 in Kotlin JVM
Привет

Может быть сталкивались с проблемой перекрытия метода  infix (generic-абстрактной)  функцией.  Пример:
   
 
val x = MyClassWithMethodTo()
x.to( y )  // Создаст Pair  x -> y,  вместо вызова метода 'to' класса

x.`to`(y)  // аналогично, создаст Pair

Происходит из-за перекрытия функцией из Tuples:

fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)


Есть ли возможность явно определить какой из методов здесь должен быть вызван?
источник

AM

Andrew Mikhaylov in Kotlin JVM
Давайте код, ибо в общем случае экстеншн не перекрывает мембер (хотя есть и исключения, насколько я понимаю).
источник

AM

Andrew Mikhaylov in Kotlin JVM
class A<T> {
   fun to(that: T): String = "A.to"
}

println(A<Int>().to(5))
источник

AM

Andrew Mikhaylov in Kotlin JVM
A.to
источник

s

shk729 🇬🇧🇷🇺 in Kotlin JVM
В Guice  наткнулся:
  bind( MyInterface::class.java ).to( MyImpl::class.java )  // Pair.to


семантика методов:
  protected <T> AnnotatedBindingBuilder<T> bind(Class<T> clazz) {
   return binder().bind(clazz);
 }

// ----------

 ScopedBindingBuilder to(Class<? extends T> implementation);
источник

s

shk729 🇬🇧🇷🇺 in Kotlin JVM
Andrew Mikhaylov
class A<T> {
   fun to(that: T): String = "A.to"
}

println(A<Int>().to(5))
работает корректно, да
источник

s

shk729 🇬🇧🇷🇺 in Kotlin JVM
Хм... возможно, ошибаюсь я.

Помог перезапуск Idea

UPD:  Да, ошибка с моей стороны

в примере выше  
MyImpl
- не наследник
MyInterface
, поэтому и сработала функция из Pair (
infix fun <A, B> A.to( ... ) 


Реимпорт зависимостей подтянул актуальные версии и наследование вернулось на место
источник
2019 March 03

IH

Isoq Hakimov in Kotlin JVM
как можно передать json
{
"result" : {
       "reason" : null
   }
}
таким образом
источник

IH

Isoq Hakimov in Kotlin JVM
в ktor
источник

IH

Isoq Hakimov in Kotlin JVM
народ помогите плз
источник

RI

Ruslan Ibragimov in Kotlin JVM
Сформулируйте вопрос понятно
источник

IH

Isoq Hakimov in Kotlin JVM
я хочу передать body содержавший null поля
источник

RI

Ruslan Ibragimov in Kotlin JVM
Указывай-те тип nullable, т.е. с вопросиком: ‘class Reason(val reason: String?)’
источник

AM

Andrew Mikhaylov in Kotlin JVM
Isoq Hakimov
я хочу передать body содержавший null поля
Что укладываете в body, объекты своих классов? Какой JSON-сериализатор используете?
источник

IH

Isoq Hakimov in Kotlin JVM
gson
источник

AM

Andrew Mikhaylov in Kotlin JVM
Вот при его инициализации в рамках создания сервера (в блоке gson { ... }) не забудьте вызвать serializeNulls().
источник

IH

Isoq Hakimov in Kotlin JVM
Andrew Mikhaylov
Вот при его инициализации в рамках создания сервера (в блоке gson { ... }) не забудьте вызвать serializeNulls().
спасибо работает
источник

TT

Turalllb Turalll in Kotlin JVM
источник

TT

Turalllb Turalll in Kotlin JVM
Нафига этот fun писать..  И почему нельзя было оставить возвоащаемый тип на месте где был в java?
источник

TT

Turalllb Turalll in Kotlin JVM
Похоже на изменения ради изменений или в каких то функциональных языках так принято ?
источник