Я хочу создать и записать данные в посылку. Причина, по которой я хочу сделать следующее, - это отладка. Я хочу написать краткий код в одном месте, чтобы обеспечить определенный поток в приложении.
Я хочу изменить этот метод, чтобы он возвращал созданный мной объект:
public MyMessage getMyMessage() {
return myMessage;
}
MyMessage - это bean-компонент, определенный как:
@Bean
public class MyMessage implements Parcelable {
@Optional
private String message;
public MyMessage() {
}
public MyMessage(Parcel in) {
message = in.readString();
}
public String getMessage() {
return message;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
}
public static final Creator<MyMessage> CREATOR = new Creator<MyMessage>() {
@Override
public MyMessage createFromParcel(Parcel in) {
return new MyMessage(in);
}
@Override
public MyMessage[] newArray(int size) {
return new MyMessage[size];
}
};
}
Я не хочу редактировать класс MyMessage и добавлять методы конструктора или установщика. MyMessage должен оставаться таким же, и я хочу заполнить его поле message
, создав объект MyMessage с участком.
Я пробовал это:
public MyMessage getMyMessage() {
android.os.Parcel parcel = android.os.Parcel.obtain(); // TODO
parcel.writeString("message is this");
return MyMessage.CREATOR.createFromParcel(parcel);
//return new MyMessage(parcel);
}
Но .writeString()
, похоже, не изменяет посылку, отладчик отсоединяется, и я не могу пройти через него. Конечным результатом является то, что bean-компонент MyMessage имеет пустое сообщение. Где я ошибаюсь?