У меня в системе не редко передается строковый id....
# russian
l
У меня в системе не редко передается строковый id. Сущности довольно сложные, и бывает путаю этот id. Ну и вообще, для порядка, было бы клево сделать так, чтобы по id одной сущности нельзя было случайно поискать другую или выбрать использовать ее api. Если это перебор - скажите. Если нет - то как это можно сделать? String - не open. typealias не строгий. Можно конечно сделать data class и в внутрь инкапсулировать строку.. но... че то это как то совсем костыль (хотя, единственное что придется сделать - это научить слой бд работать с этим (чтобы сохраняло как обычную string)). Может есть еще варианты?
c
это лишнее. В свое время у меня была аналогичная ситуация. В итоге это не слишком удобно. Проще и правильнее просто не путать сущности
y
Мне не кажется вариант с обёрткой костылём. Более того, класс с идентификатором можно сделать generic, засчёт чего во всяких
getList(User.ID)
будет выводиться тип
List<User>
. Внутри, конечно, будет unsafe cast, но это всё равно лучше, чем явный
as User
(если такая проблема, конечно, есть).
l
Нет, у меня нет методов генериков для доставания из бд.
@yan А почему там будет unsafecast? reified не поможет?
y
В каких-то случаях поможет, но если, например, сами типы тоже с дженериками, то уже нет.
f
Типизированные константы твой выбор