鸿蒙OS Parcel
Parcel
java.lang.Object
|---ohos.utils.Parcel
public class Parcel
extends Object
用于进程间通信 (IPC) 的数据对象。
在 IPC 过程中,发送方可以使用 Parcel 提供的 write 方法将要发送的数据以特定格式写入 Parcel 对象,接收方可以使用 Parcel 提供的 read 方法从 包裹对象。
Parcel 实例的默认容量为 200KB。 如果您想要更多或更少,请使用 setCapacity(int) 更改它。
注意:只有以下数据类型的数据可以写入或读取 Parcel:byte、byteArray、short、shortArray、int、intArray、long、longArray、float、floatArray、double、doubleArray、boolean、booleanArray、char、charArray 、字符串、StringArray、PlainBooleanArray、Serializable、Sequenceable 和 SequenceableArray。
构造函数摘要
修饰符 | 构造函数 | 描述 |
---|---|---|
protected | Parcel() |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | addAppClassLoader(ClassLoader newClassLoader) | 添加第三方 ClassLoader 用于实例初始化。 |
boolean | appendFrom(Parcel other) | 将指定 Parcel 对象的序列化值附加到此 Parcel 实例。 |
static Parcel | create() | 创建一个空的 Parcel 实例。 |
static Parcel | create(long nativeHandler) | 使用指定的处理程序创建一个空 Parcel 实例。 |
<T extends Sequenceable>T | createSequenceable() | 使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建特定的 Sequenceable 对象。 |
<T extends Sequenceable>T | createSequenceable(ClassLoader classLoader) | 使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建特定的 Sequenceable 对象。 |
Sequenceable[] | createSequenceableArray() | 使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建一个特定的 Sequenceable 对象数组 |
protected void | finalize() | 当垃圾收集确定不再有对该对象的引用时,由对象上的垃圾收集器调用。 |
protected void | flushBuffer() | 清除 Parcel 实例中的数据。 |
byte[] | getBytes() | 从 Parcel 实例中读取所有字节。 |
int | getCapacity() | 获取 Parcel 实例的存储容量(以字节为单位)。 |
int | getReadableBytes() | 获取 Parcel 实例中的可读数据空间(以字节为单位)。 |
int | getReadPosition() | 获取 Parcel 实例中的当前读取位置。 |
int | getSize() | 获取 Parcel 实例中包含的数据大小(以字节为单位)。 |
int | getWritableBytes() | 获取 Parcel 实例中的可写数据空间(以字节为单位)。 |
int | getWritePosition() | 获取 Parcel 实例中的当前写入位置。 |
boolean | readBoolean() | 从 Parcel 实例中读取一个布尔值。 |
boolean[] | readBooleanArray() | 从 Parcel 实例中读取一个布尔数组。 |
void | readBooleanArray(boolean[] val) | 从 Parcel 实例中读取一个布尔数组。 |
byte | readByte() | 从 Parcel 实例中读取一个字节值。 |
byte[] | readByteArray() | 从 Parcel 实例中读取一个字节数组。 |
void | readByteArray(byte[] val) | 从 Parcel 实例中读取一个字节数组。 |
char | readChar() | 从 Parcel 实例中读取单个字符值。 |
char[] | readCharArray() | 从 Parcel 实例中读取单个字符数组。 |
void | readCharArray(char[] val) | 从 Parcel 实例中读取单个字符数组。 |
double | readDouble() | 从 Parcel 实例中读取一个双精度浮点值。 |
double[] | readDoubleArray() | 从 Parcel 实例中读取一个双精度浮点数组。 |
void | readDoubleArray(double[] val) | 从 Parcel 实例中读取一个双精度浮点数组。 |
float | readFloat() | 从 Parcel 实例中读取一个浮点值。 |
float[] | readFloatArray() | 从 Parcel 实例中读取一个浮点数组。 |
void | readFloatArray(float[] val) | 从 Parcel 实例中读取一个浮点数组。 |
int | readInt() | 从 Parcel 实例中读取一个整数值。 |
int[] | readIntArray() | 从 Parcel 实例中读取一个整数数组。 |
void | readIntArray(int[] val) | 从 Parcel 实例中读取一个整数数组。 |
List<?> | readList() | 从此 Parcel 实例中读取对象列表。 |
long | readLong() | 从 Parcel 实例中读取一个长整数值。 |
long[] | readLongArray() | 从 Parcel 实例中读取一个长整数数组。 |
void | readLongArray(long[] val) | 从 Parcel 实例中读取一个长整数数组。 |
Map<?,?> | readMap() | 从此 Parcel 实例中读取 Map 对象。 |
void | readPacMapEx(PacMapEx pacMapEx) | 从此 Parcel 对象中读取 PacMapEx 对象。 |
ParcelableEx | readParcelableEx(ClassLoader loader) | 从此 Parcel 实例中读取 ParcelableEx 对象。 |
<T> PlainArray<T> | readPlainArray(Class<T> clzType) | 从此 Parcel 实例中读取一个 PlainArray 对象。 |
PlainBooleanArray | readPlainBooleanArray() | 从此 Parcel 实例中读取一个 PlainBooleanArray 对象。 |
boolean | readSequenceable(Sequenceable in) | 从 Parcel 实例中读取一个 Sequenceable 对象。 |
void | readSequenceableArray(Sequenceable[] val) | 从 Parcel 实例中读取一个 Sequenceable 对象数组。 |
<T extends Sequenceable>List<T> | readSequenceableList(Class<T> clz) | 从此 Parcel 实例中读取指定类型的 Sequenceable 对象列表。 |
<T extends Sequenceable>MapString,T | readSequenceableMap(Class<T> valueType) | 从此 Parcel 实例中读取 Map 对象。 |
<T extends Serializable>T | readSerializable(Class<T> clz) | 从此 Parcel 实例中读取一个可序列化的对象。 |
short | readShort() | 从 Parcel 实例中读取一个短整数值。 |
short[] | readShortArray() | 从 Parcel 实例中读取一个短整数数组。 |
void | readShortArray(short[] val) | 从 Parcel 实例中读取一个短整数数组。 |
String | readString() | 从 Parcel 实例中读取字符串值。 |
String[] | readStringArray() | 从 Parcel 实例中读取一个字符串数组。 |
void | readStringArray(String[] val) | 从 Parcel 实例中读取一个字符串数组。 |
ListString | readStringList() | 从 Parcel 读取字符串列表。 |
Object | readValue() | 从此 Parcel 实例中读取一个对象。 |
void | reclaim() | 清除 Parcel 实例中的数据。 |
boolean | rewindRead(int pos) | 更改 Parcel 实例中的当前读取位置。 |
boolean | rewindWrite(int pos) | 更改 Parcel 实例中的当前写入位置。 |
boolean | setCapacity(int capacity) | 设置 Parcel 实例的存储容量(以字节为单位)。 |
boolean | setSize(int size) | 设置 Parcel 实例中包含的数据大小(以字节为单位)。 |
boolean | writeBoolean(boolean val) | 将一个布尔值写入 Parcel 实例。 |
boolean | writeBooleanArray(boolean[] values) | 将一个布尔数组写入 Parcel 实例。 |
boolean | writeByte(byte val) | 将字节值写入 Parcel 实例。 |
boolean | writeByteArray(byte[] val) | 将字节数组写入 Parcel 实例。 |
boolean | writeBytes(byte[] val) | 将字节写入 Parcel 实例。 |
boolean | writeChar(char val) | 将单个字符值写入 Parcel 实例。 |
boolean | writeCharArray(char[] values) | 将单个字符数组写入 Parcel 实例。 |
boolean | writeDouble(double val) | 将双精度浮点值写入 Parcel 实例。 |
boolean | writeDoubleArray(double[] values) | 将双精度浮点数组写入 Parcel 实例。 |
boolean | writeFloat(float val) | 将浮点值写入 Parcel 实例。 |
boolean | writeFloatArray(float[] values) | 将浮点数组写入 Parcel 实例。 |
boolean | writeInt(int val) | 将整数值写入 Parcel 实例。 |
boolean | writeIntArray(int[] values) | 将整数数组写入 Parcel 实例。 |
void | writeList(List<?> values) | 将对象列表写入此 Parcel 实例。 |
boolean | writeLong(long val) | 将一个长整数值写入 Parcel 实例。 |
boolean | writeLongArray(long[] values) | 将一个长整数数组写入 Parcel 实例。 |
void | writeMap(Map<?,?> values) | 将 Map 对象写入此 Parcel 实例。 |
void | writeMap(Map<?,?> values, boolean isCross) | 通过支持跨平台将 Map 对象写入此 Parcel 实例。 |
void | writePacMapEx(PacMapEx val) | 将 PacMapEx 对象写入此 Parcel 实例。 |
void | writeParcelableEx(ParcelableEx val) | 将 ParcelableEx 对象写入此 Parcel 实例。 |
<T> void | writePlainArray(PlainArray<T> value) | 将 PlainArray 对象写入此 Parcel 实例。 |
boolean | writePlainBooleanArray(PlainBooleanArray value) | 将 PlainBooleanArray 对象写入此 Parcel 实例。 |
void | writeSequenceable(Sequenceable val) | 将 Sequenceable 对象写入 Parcel 实例。 |
boolean | writeSequenceableArray(Sequenceable[] values) | 将 Sequenceable 对象数组写入 Parcel 实例。 |
boolean | writeSequenceableList(List<? extends Sequenceable> values) | 将 Sequenceable 列表写入此 Parcel 实例。 |
boolean | writeSequenceableMap(Map<String,? extends Sequenceable> values) | 将 Map 对象写入此 Parcel 实例。 |
void | writeSerializable(Serializable object) | 将可序列化对象写入此 Parcel 实例。 |
boolean | writeShort(short val) | 将一个短整数值写入 Parcel 实例。 |
boolean | writeShortArray(short[] values) | 将一个短整数数组写入 Parcel 实例。 |
boolean | writeString(String val) | 将字符串值写入 Parcel 实例。 |
boolean | writeStringArray(String[] values) | 将字符串数组写入 Parcel 实例。 |
boolean | writeStringList(ListString values) | 将字符串列表写入此 Parcel 实例。 |
void | writeTypedSequenceable(Sequenceable sequenceable) | 使用 Sequenceable.Producer#createFromParcel(Parcel) 将 Sequenceable 对象写入 Parcel 实例。 |
<T extends Sequenceable>void | writeTypedSequenceableArray(T[] values) | 使用 Sequenceable.Producer#createFromParcel(Parcel) 将 Sequenceable 对象数组写入 Parcel 实例。 |
void | writeValue(Object value) | 将对象写入此 Parcel 实例。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
Parcel
protected Parcel()
方法详情
flushBuffer
protected void flushBuffer()
清除 Parcel 实例中的数据。
finalize
protected void finalize() throws Throwable
从类复制的描述:对象
当垃圾收集确定不再有对该对象的引用时,由对象上的垃圾收集器调用。子类覆盖 finalize 方法以释放系统资源或执行其他清理。
finalize 的一般约定是,当 Java™ 虚拟机确定不再有任何方法可以让任何尚未终止的线程访问该对象时调用它,除非是由于某个操作而导致的。由准备完成的其他对象或类的完成所采取。 finalize 方法可以采取任何行动,包括使该对象再次可供其他线程使用;然而,finalize 的通常目的是在对象被不可撤销地丢弃之前执行清理操作。例如,代表输入/输出连接的对象的 finalize 方法可能会执行显式 I/O 事务以在对象被永久丢弃之前中断连接。
Object 类的 finalize 方法不执行任何特殊操作;它只是正常返回。 Object 的子类可以覆盖这个定义。
Java 编程语言不保证哪个线程将为任何给定对象调用 finalize 方法。但是,可以保证调用 finalize 的线程在调用 finalize 时不会持有任何用户可见的同步锁。如果 finalize 方法抛出未捕获的异常,则忽略该异常并终止该对象的终结。
在为一个对象调用 finalize 方法后,不会采取进一步的行动,直到 Java 虚拟机再次确定没有任何方法可以让任何尚未终止的线程访问该对象,包括可能的行动由其他准备完成的对象或类,此时该对象可能被丢弃。
对于任何给定的对象,Java 虚拟机永远不会多次调用 finalize 方法。
finalize 方法抛出的任何异常都会导致该对象的终结被暂停,否则会被忽略。
覆盖:
在类 Object 中完成
Throws:
Throw名称 | Throw描述 |
---|---|
Throwable | 此方法引发的异常 |
create
public static Parcel create()
创建一个空的 Parcel 实例。
返回:
返回一个 Parcel 实例。
create
public static Parcel create(long nativeHandler)
使用指定的处理程序创建一个空 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
nativeHandler | 指示本机中的处理程序指向一个包裹对象。 |
返回:
返回具有指定处理程序的 Parcel 实例。
reclaim
public void reclaim()
清除 Parcel 实例中的数据。
getSize
public final int getSize()
获取 Parcel 实例中包含的数据大小(以字节为单位)。
返回:
返回 Parcel 实例中包含的数据的大小。
getCapacity
public final int getCapacity()
获取 Parcel 实例的存储容量(以字节为单位)。
返回:
返回 Parcel 实例的存储容量。
setSize
public final boolean setSize(int size)
设置 Parcel 实例中包含的数据大小(以字节为单位)。
如果此方法中设置的数据大小大于 Parcel 的存储容量,则返回 false。
参数:
参数名称 | 参数描述 |
---|---|
size | 指示 Parcel 实例的数据大小。 |
返回:
设置成功返回 true; 否则返回 false。
setCapacity
public final boolean setCapacity(int capacity)
设置 Parcel 实例的存储容量(以字节为单位)。
如果此方法中设置的容量小于 Parcel 中包含的数据大小,则返回 false。
参数:
参数名称 | 参数描述 |
---|---|
capacity | Parcel实例的存储容量。 |
返回:
设置成功返回true; 否则返回 false。
getWritableBytes
public final int getWritableBytes()
获取 Parcel 实例中的可写数据空间(以字节为单位)。
可写数据空间 = Parcel 的存储容量 - Parcel 中包含的数据大小。
返回:
返回 Parcel 实例的可写数据空间。
getReadableBytes
public final int getReadableBytes()
获取 Parcel 实例中的可读数据空间(以字节为单位)。
可读数据空间 = Parcel 中包含的数据大小 - 已读取数据的大小。
返回:
返回 Parcel 实例的可读数据空间。
getReadPosition
public final int getReadPosition()
获取 Parcel 实例中的当前读取位置。
返回:
返回 Parcel 实例中的当前读取位置。
getWritePosition
public final int getWritePosition()
获取 Parcel 实例中的当前写入位置。
返回:
返回 Parcel 实例中的当前写入位置。
rewindRead
public final boolean rewindRead(int pos)
更改 Parcel 实例中的当前读取位置。
一般不建议更改当前读取位置。 如果必须更改,请将其更改到准确的位置。 否则,读取的数据可能不正确。
参数:
参数名称 | 参数描述 |
---|---|
pos | 指示开始数据读取的目标位置。 |
返回:
如果读取位置改变,则返回 true; 否则返回 false。
rewindWrite
public final boolean rewindWrite(int pos)
更改 Parcel 实例中的当前写入位置。
一般不建议更改当前写入位置。 如果必须更改,请将其更改到准确的位置。 否则,要读取的数据可能不正确。
参数:
参数名称 | 参数描述 |
---|---|
pos | 指示开始数据写入的目标位置。 |
返回:
如果写入位置改变,则返回 true; 否则返回 false。
writeByte
public final boolean writeByte(byte val)
将字节值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的字节值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeShort
public final boolean writeShort(short val)
将一个短整数值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的短整数值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeInt
public final boolean writeInt(int val)
将整数值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的整数值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeLong
public final boolean writeLong(long val)
将一个长整数值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的长整数值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeFloat
public final boolean writeFloat(float val)
将浮点值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的浮点值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeDouble
public final boolean writeDouble(double val)
将双精度浮点值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的双精度浮点值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeBoolean
public final boolean writeBoolean(boolean val)
将一个布尔值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的布尔值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeChar
public final boolean writeChar(char val)
将单个字符值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的单个字符值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeString
public final boolean writeString(String val)
将字符串值写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的字符串值。 |
返回:
如果值已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeSequenceable
public final void writeSequenceable(Sequenceable val)
将 Sequenceable 对象写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的 Sequenceable 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readByte
public final byte readByte()
从 Parcel 实例中读取一个字节值。
返回:
返回一个字节值。
readShort
public final short readShort()
从 Parcel 实例中读取一个短整数值。
返回:
返回一个短整数值。
readInt
public final int readInt()
从 Parcel 实例中读取一个整数值。
返回:
返回一个整数值。
readLong
public final long readLong()
从 Parcel 实例中读取一个长整数值。
返回:
返回一个长整数值。
readFloat
public final float readFloat()
从 Parcel 实例中读取一个浮点值。
返回:
返回一个浮点值。
readDouble
public final double readDouble()
从 Parcel 实例中读取一个双精度浮点值。
返回:
返回一个双精度浮点值。
readBoolean
public final boolean readBoolean()
从 Parcel 实例中读取一个布尔值。
返回:
返回一个布尔值。
readChar
public final char readChar()
从 Parcel 实例中读取单个字符值。
返回:
返回单个字符值。
readString
public final String readString()
从 Parcel 实例中读取字符串值。
返回:
返回一个字符串值。
readSequenceable
public final boolean readSequenceable(Sequenceable in)
从 Parcel 实例中读取一个 Sequenceable 对象。
参数:
参数名称 | 参数描述 |
---|---|
in | 指示需要使用 Parcel 执行解组操作的 Sequenceable 对象。 |
返回:
如果解组成功,则返回 true; 否则返回 false。
writeByteArray
public final boolean writeByteArray(byte[] val)
将字节数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的字节数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeBytes
public final boolean writeBytes(byte[] val)
将字节写入 Parcel 实例。
此方法与 writeByteArray 方法不同。 在该方法中,Parcel 不能调用其他方法写入数据,写入的数据只能通过调用 getBytes() 来读取。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的字节。 |
返回:
如果字节已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeShortArray
public final boolean writeShortArray(short[] values)
将一个短整数数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的短整数数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeIntArray
public final boolean writeIntArray(int[] values)
将整数数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的整数数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeLongArray
public final boolean writeLongArray(long[] values)
将一个长整数数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的长整数数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeFloatArray
public final boolean writeFloatArray(float[] values)
将浮点数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的浮点数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeDoubleArray
public final boolean writeDoubleArray(double[] values)
将双精度浮点数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的双精度浮点数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeBooleanArray
public final boolean writeBooleanArray(boolean[] values)
将一个布尔数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的布尔数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeCharArray
public final boolean writeCharArray(char[] values)
将单个字符数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的单个字符数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeStringArray
public final boolean writeStringArray(String[] values)
将字符串数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的字符串数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeStringList
public final boolean writeStringList(ListString values)
将字符串列表写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的字符串列表。 |
返回:
如果字符串列表写入成功,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeSequenceableArray
public final boolean writeSequenceableArray(Sequenceable[] values)
将 Sequenceable 对象数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Sequenceable 对象数组。 |
返回:
如果数组已写入 Parcel,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeSequenceableList
public final boolean writeSequenceableList(List<? extends Sequenceable> values)
将 Sequenceable 列表写入此 Parcel 实例。
此列表中的元素类型必须是实现了 Sequenceable 的东西。 调用readSequenceableList(java.lang.Class)方法读取列表时,确保values的元素是同一类型。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Sequenceable 列表。 |
返回:
如果 Sequenceable 列表写入成功,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeSequenceableMap
public final boolean writeSequenceableMap(Map<String,? extends Sequenceable> values)
将 Map 对象写入此 Parcel 实例。
在 Map 对象中,键是 String 类型,值来自实现了 Sequenceable 的东西。 调用readSequenceableMap(java.lang.Class)方法读取map时,需要保证values的元素类型相同。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Map 对象。 |
返回:
如果 Map 对象写入成功,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readByteArray
public final void readByteArray(byte[] val)
从 Parcel 实例中读取一个字节数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的字节数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取字节数组失败会抛出这个异常。 |
readByteArray
public final byte[] readByteArray()
从 Parcel 实例中读取一个字节数组。
返回:
返回一个字节数组。
getBytes
public final byte[] getBytes()
从 Parcel 实例中读取所有字节。
此方法与 readByteArray 方法不同。 在该方法中,Parcel 不能调用其他方法读取数据,该方法只能读取使用 [writeBytes(byte]) 写入的数据。
返回:
返回字节。
readShortArray
public final void readShortArray(short[] val)
从 Parcel 实例中读取一个短整数数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的短整数数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取短数组失败,则抛出此异常。 |
readShortArray
public final short[] readShortArray()
从 Parcel 实例中读取一个短整数数组。
返回:
返回一个短整数数组。
readIntArray
public final void readIntArray(int[] val)
从 Parcel 实例中读取一个整数数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的整数数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取整数数组失败,则抛出此异常。 |
readIntArray
public final int[] readIntArray()
从 Parcel 实例中读取一个整数数组。
返回:
返回一个整数数组。
readLongArray
public final void readLongArray(long[] val)
从 Parcel 实例中读取一个长整数数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的长整数数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取长数组失败,则抛出此异常。 |
readLongArray
public final long[] readLongArray()
从 Parcel 实例中读取一个长整数数组。
返回:
返回一个长整数数组。
readFloatArray
public final void readFloatArray(float[] val)
从 Parcel 实例中读取一个浮点数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的浮点数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取浮点数组失败,则抛出此异常。 |
readFloatArray
public final float[] readFloatArray()
从 Parcel 实例中读取一个浮点数组。
返回:
返回一个浮点数组。
readDoubleArray
public final void readDoubleArray(double[] val)
从 Parcel 实例中读取一个双精度浮点数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的双精度浮点数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取双精度数组失败,则抛出此异常。 |
readDoubleArray
public final double[] readDoubleArray()
从 Parcel 实例中读取一个双精度浮点数组。
返回:
返回一个双精度浮点数组。
readBooleanArray
public final void readBooleanArray(boolean[] val)
从 Parcel 实例中读取一个布尔数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的布尔数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取布尔数组失败,则抛出此异常。 |
readBooleanArray
public final boolean[] readBooleanArray()
从 Parcel 实例中读取一个布尔数组。
返回:
返回一个布尔数组。
readCharArray
public final void readCharArray(char[] val)
从 Parcel 实例中读取单个字符数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的单个字符数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取 char 数组失败,则抛出此异常。 |
readCharArray
public final char[] readCharArray()
从 Parcel 实例中读取单个字符数组。
返回:
返回单个字符数组。
readStringArray
public final void readStringArray(String[] val)
从 Parcel 实例中读取一个字符串数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的字符串数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取字符串数组失败,则抛出此异常。 |
readStringArray
public final String[] readStringArray()
从 Parcel 实例中读取一个字符串数组。
返回:
返回一个字符串数组。
readStringList
public final ListString readStringList()
从 Parcel 读取字符串列表。
您可以使用此方法读取 writeStringList(java.util.List) 和 [writeStringArray(java.lang.String]) 写入 Parcel 的字符串。
返回:
返回一个只读字符串列表对象。
readSequenceableArray
public final void readSequenceableArray(Sequenceable[] val)
从 Parcel 实例中读取一个 Sequenceable 对象数组。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要读取的 Sequenceable 对象数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果读取可排序数组失败,则抛出此异常。 |
readSequenceableList
public final <T extends Sequenceable> List<T> readSequenceableList(Class<T> clz)
从此 Parcel 实例中读取指定类型的 Sequenceable 对象列表。
提供 Sequenceable 对象的类必须具有 Sequenceable.Producer 类型的静态成员变量 CREATOR。
参数:
参数名称 | 参数描述 |
---|---|
clz | 指示要读取的 Sequenceable 对象的类型。 |
返回:
返回 Sequenceable 对象的列表。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果无法获取 Sequenceable 的 CREATOR,则抛出此异常。 |
readSequenceableMap
public final <T extends Sequenceable> MapString,T readSequenceableMap(Class<T> valueType)
从此 Parcel 实例中读取 Map 对象。 在 Map 对象中,键是 String 类型,值来自实现了 Sequenceable 的东西。
参数:
参数名称 | 参数描述 |
---|---|
valueType | 指示要读取的 Map 对象的值类型。 |
返回:
返回一个 Map 对象,其键是 String 类型,值来自实现 Sequenceable 的东西。
writeTypedSequenceable
public final void writeTypedSequenceable(Sequenceable sequenceable)
使用 Sequenceable.Producer#createFromParcel(Parcel) 将 Sequenceable 对象写入 Parcel 实例。
此方法还将 Sequenceable 对象的类名写入 Parcel。 类名将用于从 Parcel 中恢复 Sequenceable 对象。
参数:
参数名称 | 参数描述 |
---|---|
sequenceable | 指示已实现 Sequenceable.Producer#createFromParcel 的 Sequenceable 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果在数据写入过程中发生异常,则抛出此异常。 |
createSequenceable
public final <T extends Sequenceable> T createSequenceable()
使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建特定的 Sequenceable 对象。
该方法根据writeTypedSequenceable(ohos.utils.Sequenceable)写入的类名恢复Sequenceable对象。
返回:
返回新创建的 Sequenceable 对象; 如果无法恢复 Sequenceable 对象,则返回 null。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果在数据读取过程中发生异常,则抛出此异常。 |
createSequenceable
public final <T extends Sequenceable> T createSequenceable(ClassLoader classLoader)
使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建特定的 Sequenceable 对象。
该方法根据writeTypedSequenceable(ohos.utils.Sequenceable)写入的类名恢复Sequenceable对象。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
T | 表示扩展 Sequenceable 的类。 |
参数:
参数名称 | 参数描述 |
---|---|
classLoader | 表示用于加载 Sequenceable 类的类加载器。 |
返回:
返回新创建的 Sequenceable 对象; 如果无法恢复 Sequenceable 对象,则返回 null。
writeTypedSequenceableArray
public final <T extends Sequenceable> void writeTypedSequenceableArray(T[] values)
使用 Sequenceable.Producer#createFromParcel(Parcel) 将 Sequenceable 对象数组写入 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Sequenceable 对象数组。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果在数据写入过程中发生异常,则抛出此异常。 |
writeSerializable
public final void writeSerializable(Serializable object)
将可序列化对象写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
object | 指示要写入的可序列化对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果对象无法序列化或发生 I/O 错误,则引发此异常。 |
readSerializable
public final <T extends Serializable> T readSerializable(Class<T> clz)
从此 Parcel 实例中读取一个可序列化的对象。
参数:
参数名称 | 参数描述 |
---|---|
clz | 指示要读取的可序列化对象的类型。 |
返回:
返回已读取的可序列化对象; 如果无法读取可序列化对象,则返回 null。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果要读取的可序列化对象的类型与 clz 不匹配或发生 I/O 错误,则抛出此异常。 |
createSequenceableArray
public final Sequenceable[] createSequenceableArray()
使用 Sequenceable.Producer#createFromParcel(Parcel) 从 Parcel 创建一个特定的 Sequenceable 对象数组
返回:
返回新创建的 Sequenceable 对象数组; 如果无法恢复 Sequenceable 对象数组,则返回 null。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果在数据读取过程中发生异常,则抛出此异常。 |
readList
public List<?> readList()
从此 Parcel 实例中读取对象列表。
返回:
返回对象列表。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果列表包含 Parcel 不支持的对象类型,则引发此异常。 |
writeList
public void writeList(List<?> values)
将对象列表写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的对象列表。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果列表包含 Parcel 不支持的对象类型或此 Parcel 中的容量不足,则抛出此异常,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readMap
public Map<?,?> readMap()
从此 Parcel 实例中读取 Map 对象。
返回:
返回一个 map 对象。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 Map 对象包含 Parcel 不支持的键值对类型,则抛出此异常。 |
writeMap
public void writeMap(Map<?,?> values)
将 Map 对象写入此 Parcel 实例。
Map 对象中的键值对类型必须是 Parcel 支持的。 否则会抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Map 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 Map 对象包含 Parcel 不支持的键值对类型,则抛出此异常 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeMap
public final void writeMap(Map<?,?> values, boolean isCross)
通过支持跨平台将 Map 对象写入此 Parcel 实例。
Map 对象中的键值对类型必须是 Parcel 支持的。 否则会抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
values | 指示要写入的 Map 对象。 |
isCross | 表示跨平台的标志。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 Map 对象包含 Parcel 不支持的键值对类型,则抛出此异常 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writeValue
public final void writeValue(Object value)
将对象写入此 Parcel 实例。
这是一种无需声明类型即可编写对象的通用方法。 请注意以下事项:
- 要写入的对象类型必须由 Parcel 支持。
- 您只能使用 readValue() 来读取已写入的对象。
参数:
参数名称 | 参数描述 |
---|---|
value | 指示要写入的对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 Parcel 不支持对象类型,则抛出此异常 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readValue
public final Object readValue()
从此 Parcel 实例中读取一个对象。
该方法只能读取 writeValue(java.lang.Object) 写入的对象。
返回:
返回对象。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 Parcel 不支持对象类型,则引发此异常。 |
appendFrom
public final boolean appendFrom(Parcel other)
将指定 Parcel 对象的序列化值附加到此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
other | 指示要附加的 Parcel 对象。 |
返回:
如果运算符成功,则返回 true,否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 other 为 null,则引发此异常。 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writePlainBooleanArray
public final boolean writePlainBooleanArray(PlainBooleanArray value)
将 PlainBooleanArray 对象写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
value | 指示要写入的 PlainBooleanArray 对象。 |
返回:
如果 PlainBooleanArray 对象写入成功,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果值为 null,则引发此异常。 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readPlainBooleanArray
public final PlainBooleanArray readPlainBooleanArray()
从此 Parcel 实例中读取一个 PlainBooleanArray 对象。
返回:
返回 PlainBooleanArray 对象。
writePlainArray
public final <T> void writePlainArray(PlainArray<T> value)
将 PlainArray 对象写入此 Parcel 实例。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
T | 指示存储在 PlainArray 对象中的值的类型。 |
参数:
参数名称 | 参数描述 |
---|---|
value | 指示要写入的 PlainArray 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果值为 null,则引发此异常。 |
ParcelException | 如果列表包含 Parcel 不支持的对象类型,则引发此异常。 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readPlainArray
public final <T> PlainArray<T> readPlainArray(Class<T> clzType)
从此 Parcel 实例中读取一个 PlainArray 对象。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
T | 指示存储在 PlainArray 对象中的值的类型。 |
返回:
返回 PlainArray 对象。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果列表包含 Parcel 不支持的对象类型,则引发此异常。 |
writeParcelableEx
public final void writeParcelableEx(ParcelableEx val)
将 ParcelableEx 对象写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的 ParcelableEx 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果 marshallingEx 操作失败。 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
writePacMapEx
public final void writePacMapEx(PacMapEx val)
将 PacMapEx 对象写入此 Parcel 实例。
参数:
参数名称 | 参数描述 |
---|---|
val | 指示要写入的 PacMapEx 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果编组操作失败。 |
ParcelException | 当这个包裹的容量不足时,异常消息:ParcelException#NO_CAPACITY_ERROR。 |
readPacMapEx
public final void readPacMapEx(PacMapEx pacMapEx)
从此 Parcel 对象中读取 PacMapEx 对象。
参数:
参数名称 | 参数描述 |
---|---|
pacMapEx | 指示读取数据将被解组到的 PacMapEx 对象。 |
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果解组操作失败。 |
readParcelableEx
public final ParcelableEx readParcelableEx(ClassLoader loader)
从此 Parcel 实例中读取 ParcelableEx 对象。
如果 Parcel 实例不包含类名或类名不能用于调用无参构造函数创建 ParcelableEx 对象,则读取操作失败。
参数:
参数名称 | 参数描述 |
---|---|
loader | 如果需要,ClassLoader 用于创建自定义类对象。 |
返回:
如果操作成功,则返回未编组的 ParcelableEx 对象; 否则返回 null。
Throws:
Throw名称 | Throw描述 |
---|---|
ParcelException | 如果解组操作失败。 |
addAppClassLoader
public void addAppClassLoader(ClassLoader newClassLoader)
添加第三方 ClassLoader 用于实例初始化。
如果您需要编组或解组自定义 Sequenceable 实例,请添加您自己的 ClassLoader。
参数:
参数名称 | 参数描述 |
---|---|
newClassLoader | 指示用于初始化应用程序的 Sequenceable 实例的 ClassLoader。 |
更多建议: