Android имеет интерфейс Parcelable, который каким-то образом заставляет реализующие классы иметь поле public static CREATOR
.
Из документации интерфейса:
Классы, реализующие Интерфейс Parcelable также должен иметь ненулевое поле stati c с именем CREATOR
типа, реализующего интерфейс Parcelable.Creator
.
Мой вопрос состоит из двух частей:
1) Как этот интерфейс заставляет реализующие классы иметь это поле stati c CREATOR? Как я могу сделать это в своих собственных интерфейсах Java? Я не могу понять, как это работает из исходного кода Parcelable.
Например: если бы у меня был интерфейс Car, и я хотел бы, чтобы каждый реализующий класс имел publi c stati c String MANUFACTURER. Можно ли это сделать аналогично полю Parcelable CREATOR
? Я, конечно, могу добавить к интерфейсу метод getManufacturer()
, но мне любопытно, как Parcelable заставляет поле stati c.
2) Следуя пункту 1, как Android получить доступ к этому полю? С помощью метода интерфейса вы могли бы сделать что-то вроде:
public void printManufacturer(Car car) {
System.out.println(car.getManufacturer());
}
Как это будет работать с полем?
Я пытался исследовать, как это работает, но единственные ответы, которые я нашел это что это невозможно , но это как-то здесь делается.