<@U0BKAPC0G>, через лямбду можно, но запись слишко...
# russian
b
@snrostov, через лямбду можно, но запись слишком длинная получается
s
ну,
val setter = (KotlinClass::someProperty)::set
это наверное будет не быстро работать (ибо рефлекшен), и, как уже выше написали генерит 2 лишних класса.
b
Нет, так без рефлекшена, но генерятся сразу 2 скрытых класса
Хотя если подумать, то с рефлекшеном может быть накладные расходы и меньше будут...
s
хм, точно, нет рефлекшена. не знал что KProperty::set генерит класс с "нативным" сеттером без рефлекшена. круто
Хотя если подумать, то с рефлекшеном может быть накладные расходы и меньше будут...
ну вот hotspot что то не очень инлайнит рефлекшен, если например, как в примере выше, сериализацию через рефлекшен делать. ну либо я что то не так делал. если развернуть цикл по полям вручную, то получается почти на порядок быстрее. правда не уверен в точности своих замеров
b
Насколько я слышал, в hotspot всё равно для рефлекшена генерятся анонимные классы "на лету" в память
Инлайнить он будет, но циклов пройти должно много, и желательно в server VM
s
да, он генерит, но почему то цикл все равно не разворачивает
видимо не может знать что набор полей - константа
но это только предположение, глубоко не изучал
a
Рефлекшн из-за jdk6?