Parceler 库是否使用反射?

Does Parceler library use reflection?

在库的description中,你可以看到它使用了代码生成。您可以进一步阅读:

Be careful not to use private fields when using the default field serialization strategy as it will incur a performance penalty due to reflection.

这让我很困惑!它是否使用反射或代码生成。如果它确实使用了反射,我看不出这样的库有什么意义,因为 Parceables 的全部意义在于避免使用反射的可序列化?

Parceler 为您的代码生成 Parcelable 包装器,这样您就可以避免编写样板文件。这样做的一个优点是静态编译代码的高性能。在某些情况下,比如访问私有字段、方法或构造函数,Parceler 必须求助于使用反射,正如引用的注释中提到的那样,这将导致发出警告。

所以,简而言之,Parceler 主要使用代码生成来处理编写 Parcelable 样板,但在某些情况下会诉诸反射。