Java 使用包裹有什么好处?

Java 使用包裹有什么好处?,java,android,Java,Android,我们引用不使用parcelable的类对象有什么不同吗 当我们对地块进行估价时,我们必须创建该类的对象。 阅读时也是如此 如果我们在读写时实际引用了一个类对象,那么使用该类的Parcelable有什么区别呢?虽然定制类实现Parcelable需要一点努力,但回报是可以很容易地将它们作为额外的东西传递给包。Bundle是一个数据容器,用于Android世界中各种组件之间的通信,另请参见本指南 考虑这样一种情况,您希望将自定义类的实例从活动传递到片段。片段有一个参数包,通常用于初始化片段。(我想这是

我们引用不使用parcelable的类对象有什么不同吗

当我们对地块进行估价时,我们必须创建该类的对象。 阅读时也是如此


如果我们在读写时实际引用了一个类对象,那么使用该类的Parcelable有什么区别呢?

虽然定制类实现Parcelable需要一点努力,但回报是可以很容易地将它们作为额外的东西传递给
包。
Bundle
是一个数据容器,用于Android世界中各种组件之间的通信,另请参见本指南

考虑这样一种情况,您希望将自定义类的实例从
活动
传递到
片段
片段
有一个参数
,通常用于初始化
片段
。(我想这是因为如果用户离开应用程序,并且整个应用程序在一小时后停止并从后堆栈中恢复,那么
捆绑包
仍然可以访问。另一方面,如果
片段
没有在
中的另一个
捆绑包
中保存它们,则通过构造函数传递的任何值都将丢失。)aveInstanceState()

因此,如果一个值可以存储在
包中,那就好了。属于实现
Parcelable
的类的对象以及基本数据类型、一些数组、列表和可序列化对象都属于这种类型

如果可以在不进行类转换的情况下检索值,则更方便,这就是为什么我尽可能选择
Parcelable
而不是
Serializable

假设我们有两个类分别实现了
Serializable
Parcelable
。 假设我们有一个
Bundle b=getArguments()

要检索可序列化的
值,需要以下语句

SomeSerializableClass instanceOfSerializableClass = (SomeSerializableClass)b.getSerializable("keyForSerializableValue");
而对于
Parcelable
值,您可以编写

SomeParcelableClass instanceOfParcelableClass = b.getParcelable("keyForParcelableValue");
在Kotlin中,我们有一种罕见的情况,语句比Java对应语句长:

val instanceOfSerializableClass: SomeSerializableClass? = b.getSerializable("keyForSerializableValue") as SomeSerializableClass
相比

val instanceOfParcelableClass = b.getParcelable<SomeParcelableClass>("keyForParcelableValue");
val instanceOfParcelableClass=b.getParcelable(“keyForParcelableValue”);

非常感谢……它很有用。