https://kotlinlang.org logo
#russian
Title
# russian
l

lewik

01/11/2018, 6:16 PM
У меня в системе не редко передается строковый id. Сущности довольно сложные, и бывает путаю этот id. Ну и вообще, для порядка, было бы клево сделать так, чтобы по id одной сущности нельзя было случайно поискать другую или выбрать использовать ее api. Если это перебор - скажите. Если нет - то как это можно сделать? String - не open. typealias не строгий. Можно конечно сделать data class и в внутрь инкапсулировать строку.. но... че то это как то совсем костыль (хотя, единственное что придется сделать - это научить слой бд работать с этим (чтобы сохраняло как обычную string)). Может есть еще варианты?
c

caffeine

01/11/2018, 9:48 PM
это лишнее. В свое время у меня была аналогичная ситуация. В итоге это не слишком удобно. Проще и правильнее просто не путать сущности
y

yan

01/12/2018, 7:07 AM
Мне не кажется вариант с обёрткой костылём. Более того, класс с идентификатором можно сделать generic, засчёт чего во всяких
getList(User.ID)
будет выводиться тип
List<User>
. Внутри, конечно, будет unsafe cast, но это всё равно лучше, чем явный
as User
(если такая проблема, конечно, есть).
l

lewik

01/12/2018, 7:12 AM
Нет, у меня нет методов генериков для доставания из бд.
@yan А почему там будет unsafecast? reified не поможет?
y

yan

01/12/2018, 7:32 AM
В каких-то случаях поможет, но если, например, сами типы тоже с дженериками, то уже нет.
f

fogone

01/12/2018, 7:41 AM
Типизированные константы твой выбор
5 Views