Size: a a a

Programming Offtop

2020 May 30

AN

Alexander Nozik in Programming Offtop
Igor
Нет конечно.
В метод передается масив int, а реалзиция IMonoid перадается неявно в метод
Я точно то же самое могу сделать с инлайн классом. Понятно, что вероятно там еще что-то можно, но значит пример не удачный
источник

AN

Alexander Nozik in Programming Offtop
Тут подстановка метода происходит в тот момент, когда я из одного типа неявно приводят в другой. Ну так сделать это явно и все.
источник

I

Igor in Programming Offtop
Alexander Nozik
Я точно то же самое могу сделать с инлайн классом. Понятно, что вероятно там еще что-то можно, но значит пример не удачный
Боюсь точно такой не получится даже тут, тк в kotlin будет боксинг для дженерик масива интерфейсов
источник

AN

Alexander Nozik in Programming Offtop
Igor
Боюсь точно такой не получится даже тут, тк в kotlin будет боксинг для дженерик масива интерфейсов
В инлайн классе не будет. И это особенность реализации. Это как раз сейчас оптимизириуют
источник

I

Igor in Programming Offtop
смотрю в байт-код вижу боксик 🤷‍♀️
источник

I

Igor in Programming Offtop
inline class B(val a: Int) : IFoo {
   override fun bar() {} }

interface IFoo {
   fun bar() }

fun <T : IFoo> foo(xs: Array<T>) =
   xs[0].bar()
источник

AN

Alexander Nozik in Programming Offtop
Igor
inline class B(val a: Int) : IFoo {
   override fun bar() {} }

interface IFoo {
   fun bar() }

fun <T : IFoo> foo(xs: Array<T>) =
   xs[0].bar()
А, в массиве да. Но это особенности реализации, а не языка. Я не знаю, что там в C#. В котлин, как я уже сказал, работают над тем, чтобы убрать боксинг и уберут.
источник

(

( in Programming Offtop
Как это дошло до разговора о боксинге инлайнов?
источник

AN

Alexander Nozik in Programming Offtop
(
Как это дошло до разговора о боксинге инлайнов?
Не знаю. Мне тоже казалось, что мы о языке говорим.
источник

SG

Sergey Grushin in Programming Offtop
Как сделать так чтобы в джава коде методы котлина работали как переменные...?
источник

SG

Sergey Grushin in Programming Offtop
Без get в начале
источник

SG

Sergey Grushin in Programming Offtop
Даже непонятно как фича языка называется чтобы гуглить
источник

BP

Bogdan Panchenko in Programming Offtop
Sergey Grushin
Как сделать так чтобы в джава коде методы котлина работали как переменные...?
Никак
источник

BP

Bogdan Panchenko in Programming Offtop
Sergey Grushin
Как сделать так чтобы в джава коде методы котлина работали как переменные...?
Хотя можно повесить jvmName
источник

SG

Sergey Grushin in Programming Offtop
Может я некорректно обьяснил..
Есть абстрактный класс на котлине с абстрактными методами. На джаве был метод

int getSpeed()

На котлине теперь

val speed: Int

Классы на джаве которые наследуются от этого абстрактного класса, реализуют метод getSpeed.

А сама проблема вот в чем. В джава классе мне нужно у абстрактного класса обратиться за переменной через точку.

abstractClass.speed

Чтобы он мог вернуть getSpeed из реализации
источник

AN

Alexander Nozik in Programming Offtop
Sergey Grushin
Даже непонятно как фича языка называется чтобы гуглить
Это называется property и в джаве их нет
источник

SG

Sergey Grushin in Programming Offtop
Чтобы писать вместо getSpeed просто speed
источник

SG

Sergey Grushin in Programming Offtop
Alexander Nozik
Это называется property и в джаве их нет
Печаль беда(
источник

AN

Alexander Nozik in Programming Offtop
Sergey Grushin
Чтобы писать вместо getSpeed просто speed
нету. В Java есть только поля.
источник

AN

Alexander Nozik in Programming Offtop
Если у вас есть исходный класс на котлин, то есть аннотация @JvmField, которая делает его полем, но если исходный класс на Java, то это точно невозможно.
источник