代码之家  ›  专栏  ›  技术社区  ›  Adeel Ansari

Xstream,循环引用异常

  •  1
  • Adeel Ansari  · 技术社区  · 16 年前

    请考虑此代码。是否使用循环引用?如果不是,为什么我在启用XStream中的no_引用模式时得到CircularReferenceException。任何人,请澄清这件事。

    @XStreamAlias("BalanceEnquiry")
    public class BalanceEnquiry extends EAIRequest {
    
        @XStreamImplicit
        private List<BalanceEnquiry.Detail> details;
    
        public List<Detail> getDetails() {
            ....
        }
    
        public void setDetails(Detail... details) {
            ....
        }
    
        @XStreamAlias("details")
        public final class Detail {
    
            @XStreamAsAttribute
            private String item;
            private BalanceEnquiry.Detail.Request request;
    
            public String getItem() {
                ....
            }
    
            public void setItem(String item) {
                ....
            }
    
            public Request getRequest() {
                ....
            }
    
            public void setRequest(Request request) {
                ....
            }
    
            public final class Request {
    
                private String code;
                private String branch;
    
                public String getCode() {
                    ....
                }
    
                public void setCode(String code) {
                    ....
                }
    
                public String getBranch() {
                    ....
                }
    
                public void setBranch(String branch) {
                    ....
                }
            }
        }
    }
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Brian Agnew    16 年前

    我怀疑是因为 Detail 是一个 内部的 班级。因此,它隐式引用了外部类的实例(因此形成了循环引用)。见 here 了解更多详细信息。