Как сказал Ловис, вы не можете сделать это точно.
Однако, если вы хотите, чтобы ваша подпись сообщала, что ваш параметр не может быть просто Int
, но должен быть @StringRes
,@IdRes
, @LayoutRes
и т. Д., Вы можете использовать typealiases в качестве обходного пути.
В моем последнем проекте у меня был файл ResourceAnnotationAliases.kt
, который только что определил это:
typealias StringRes = Int
typealias LayoutRes = Int
typealias IdRes = Int
Теперь вы можете дать своей паре подпись Pair<StringRes, Int>
.
Конечно, он не покажет вам ошибку в IDE, когда вы введете Int, который не из R.string
, но по крайней мере ваша сигнатура метода прояснит, что ожидается.