【发布时间】:2020-05-05 21:14:21
【问题描述】:
Android 有一个接口 Parcelable,它以某种方式强制实现类具有 public static CREATOR 字段。
来自接口的文档:
实现 Parcelable 接口的类也必须有一个 名为
CREATOR的非空静态字段,其类型为 实现Parcelable.Creator接口。
我的问题分为两部分:
1) 这个接口如何强制实现类拥有这个静态 CREATOR 字段?如何在我自己的 Java 接口中做到这一点?我无法从 Parcelable 的源代码中看到它是如何工作的。
例如:
如果我有一个接口 Car,并且我希望每个实现类都有一个公共静态 String MANUFACTURER。这可以以类似于 Parcelable 的 CREATOR 字段的方式完成吗?
我当然可以在接口中添加一个getManufacturer() 方法,但我很好奇 Parcelable 是如何强制静态字段的。
2) 继 1 之后,Android 如何访问该字段? 使用接口方法,您可以执行以下操作:
public void printManufacturer(Car car) {
System.out.println(car.getManufacturer());
}
这将如何与字段一起使用?
我已经尝试研究它是如何工作的,但我发现的唯一答案是 it's not possible,但它以某种方式在这里完成。
【问题讨论】: