Android Комната, что означает @field - PullRequest
0 голосов
/ 01 мая 2020

Я недавно изучаю Room для управления моей базой данных и использую " GithubBrowerSample " в качестве шаблона.

Как правило, это выглядит хорошо для меня, за исключением ключевого слова @field. Я немного гуглил, но не смог найти объяснения по этому поводу. Тебе android do c примеры, кажется, прекрасно работают без него. Что он на самом деле делает здесь, в комнате?

enter image description here

1 Ответ

1 голос
/ 01 мая 2020

Это не что-то уникальное для Room - вместо этого Kotlin Цели аннотации :

Когда вы аннотируете свойство или параметр первичного конструктора, там это несколько Java элементов, которые сгенерированы из соответствующего Kotlin элемента, и, следовательно, несколько возможных мест для аннотации в сгенерированном Java байт-коде.

То есть @field:SerializedName("owner") означает, что SerializedName("owner") аннотация должна быть добавлена ​​к самому базовому полю (а не, скажем, при использовании @get:, где она будет присоединена к сгенерированному методу getOwner() или по умолчанию @property:, который, согласно той же странице, недоступен на Java, это то, что комната анализирует).

...