在字段前加transient關鍵字,gson就會在序列化時忽略這個字段
transient關鍵字本是配合Java自帶的Serilizable序列化接口使用的,gson直接借用了這個特性
public class TreeNode<T extends TreeNode> {
public String id;
public String parentId;
public Integer level = 0;
//父節點包含子節點,字節點也包含父節點,對象循環引用
//會導致Gson在序列化時無限創建對象
//可以通過transient來忽略parentNode字段,通過parentId來查找
public transient TreeNode<T> parentNode;
public List<T> children = new LinkedList();
//選中狀態,0表示全部取消,1表示全部選中,2表示部分選中
public int selection = 0;
public boolean expand = false;
//樹結構轉List
public List<T> toList() {
return null;
}
}