Fat*_*tum 4 android parcel parcelable
是否可以在null分配Parcel对象时写入,并在null再次取消对象时再次返回?
我们假设我们有以下代码:
public class Test implements Parcelable {
private String string = null;
public Test(Parcel dest, int flags) {
source.writeString(string);
}
}
Run Code Online (Sandbox Code Playgroud)
使用NullPointerException时从包裹中读取此值是否会得到Parcel.readString()?
或者我会得到一个null价值?
Ric*_*ier 14
是的,您可以传递null给Parcel.writeString(String)方法.
再次阅读时Parcel.readString(),您将获得一个null价值.
例如,假设您有一个包含以下字段的类:
public class Test implements Parcelable {
public final int id;
private final String name;
public final String description;
...
Run Code Online (Sandbox Code Playgroud)
您可以Parcelable像这样创建实现(使用Android Studio autoparcelable工具):
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(null); // NOTE the null value here
dest.writeString(description);
}
protected Test(Parcel in) {
id = in.readInt();
name = in.readString();
description = in.readString();
}
Run Code Online (Sandbox Code Playgroud)
运行此代码并将Test对象作为Parcelable extra 传递时Intent,2点变得明显:
NullPointerExceptionTest对象具有值name == null您可以在对此相关问题的评论中看到类似的信息:
| 归档时间: |
|
| 查看次数: |
6190 次 |
| 最近记录: |