객체 X의 목록을 포함하는 객체 X가 있습니다. 목록에서 루프를 수행하고 목록에서 객체 X를 인 텐트를 통해 다른 활동으로 전달합니다.활동을 통해 complexe 객체 참조 전달하기
다른 활동에서, 나는이 개체 X를 수정하고 난 다시 내 첫 번째 활동에서 개체 X를 얻을 때 다음이 수정 된 개체 X.
를 반환,이 점을 확인, 그것은이 수정 된 것 볼 수 있습니다.
루트 객체 X (객체 X의 목록을 포함하고 수정 된 객체 X에서 가져온 객체)는 의도에 대한 참조를 전달한 것처럼 수정하면 안됩니까?
그렇지 않다면 다른 개체 X 내부의 개체 X의 루트 깊이로 어떻게 수정해야합니까?
(충분히 명확하지 않습니다.)
도움 주셔서 감사합니다. 좀 더 정확히 말하면
내 개체를 다른 활동을 통해 전송 및 개체 X와 활동이 (가 직렬화 및 Parcelable이 아니라는 사실을 주목하지 않는다, 나는 나중에 수정하겠습니다) :
를public class CategoryBean implements Externalizable, Cloneable {
public static final boolean ACTIVE = true;
public static final boolean INACTIVE = false;
public static final int VALIDATED = 1;
public static final int NON_OBSERVED = 2;
public static final int IN_PROGRESS = 3;
public static final int PARTIEL = 4;
private String perimetre;
private CategoryBean parentCategory;
private List<CategoryBean> categoryList = new ArrayList<CategoryBean>();
protected String title;
/**
* Category validée ou non
*/
protected int state;
/**
* Category active ou inactive
*/
protected boolean activated = ACTIVE;
// public CategoryBean(Parcel in) {
// this.parentCategory = in.readParcelable(CategoryBean.class.getClassLoader());
// this.categoryList = Arrays.asList(in.readParcelableArray(CategoryBean.class.getClassLoader()));
// this.title = in.readString();
// }
/**
* @return the parentCategory
*/
public CategoryBean getParentCategory() {
return parentCategory;
}
/**
* @return the perimetre
*/
public String getPerimetre() {
return perimetre;
}
/**
* @param perimetre
* the perimetre to set
*/
public void setPerimetre(String perimetre) {
this.perimetre = perimetre;
}
/**
* @param parentCategory
* the parentCategory to set
*/
public void setParentCategory(CategoryBean parentCategory) {
this.parentCategory = parentCategory;
}
/**
* @return the category
*/
public List<CategoryBean> getCategoryList() {
return categoryList;
}
/**
* @param category
* the category to set
*/
public void setCategoryList(List<CategoryBean> categoryList) {
this.categoryList = categoryList;
}
/**
* @return the title
*/
public String getTitle() {
return title;
}
/**
* @param title
* the title to set
*/
public void setTitle(String title) {
this.title = title;
}
/**
* @return the state
*/
public int getState() {
return state;
}
/**
* @param state
* the state to set
*/
public void setState(int state) {
this.state = state;
}
/**
* @return the activated
*/
public boolean isActivated() {
return activated;
}
/**
* @param activated
* the activated to set
*/
public void setActivated(boolean activated) {
this.activated = activated;
}
@Override
public int hashCode() {
return parentCategory.hashCode() + categoryList.hashCode() + title.hashCode();
}
@SuppressWarnings("unchecked")
@Override
public void readExternal(ObjectInput input) throws IOException, ClassNotFoundException {
setPerimetre((String) input.readObject());
setParentCategory((CategoryBean) input.readObject());
setCategoryList((List<CategoryBean>) input.readObject());
setTitle((String) input.readObject());
setState((Integer) input.readObject());
setActivated((Boolean) input.readObject());
}
@Override
public void writeExternal(ObjectOutput output) throws IOException {
output.writeObject(getPerimetre());
output.writeObject(getParentCategory());
output.writeObject(getCategoryList());
output.writeObject(getTitle());
output.writeObject(getState());
output.writeObject(isActivated());
}
@Override
public CategoryBean clone() throws CloneNotSupportedException {
try {
CategoryBean clone = (CategoryBean) super.clone();
clone.setPerimetre(clone.getPerimetre());
clone.setParentCategory(clone.getParentCategory());
clone.setCategoryList(clone.getCategoryList());
clone.setTitle(clone.getTitle());
clone.setState(clone.getState());
clone.setActivated(clone.isActivated());
return clone;
} catch (CloneNotSupportedException e) {
throw new InternalError();
}
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("(CategoryBean -> ");
sb.append(" perimetre : ");
sb.append(getPerimetre());
sb.append(" parentCategory : ");
sb.append(getParentCategory() != null ? getParentCategory().getTitle() : null);
sb.append(" categoryList : ");
sb.append(getCategoryList());
sb.append(" title : ");
sb.append(getTitle());
sb.append(" state : ");
sb.append(getState());
sb.append(" activated : ");
sb.append(isActivated());
sb.append(")");
return sb.toString();
}
}
'나는 객체 X의 목록을 포함하는 객체 X가있다. ' –
@Samir 나는 내 질문을 업데이트했다. – Nico