2010-05-08 19 views
7

Tôi có một vấn đề nhỏ với một lớp tôi hiện đang viết một hàm lưu cho.Làm cho XStream bỏ qua một biến riêng tư cụ thể

Tôi đang sử dụng XStream (com.thoughtworks.xstream) để tuần tự hóa một lớp thành XML bằng DOMDriver.

Lớp trông như thế này:

public class World { 
    private Configuration config; 
    public World(Configuration config) { 
    this.config = config; 
    } 
} 

Vì vậy, vấn đề ở đây là tôi không muốn serialize Cấu hình khi tuần tự thế giới, chứ không phải tôi muốn cung cấp cho XStream một trường hợp cấu hình preconstructed khi gọi fromXml().

Vấn đề ở đây chủ yếu là thiết kế lớp, Cấu hình giữ tham chiếu riêng cho các lớp GUI và do đó tuần tự hóa Cấu hình có nghĩa là sắp xếp toàn bộ ứng dụng hoàn toàn bằng GUI vv.

Có cách nào hướng dẫn XStream không tuần tự hóa cấu hình trường riêng, và khi tải XStream cung cấp với một cá thể cấu hình để sử dụng?

lời chào Daniel

Trả lời

10

Như tài liệu nói ở đây: http://x-stream.github.io/annotations-tutorial.html (bỏ qua Fields), bạn có thể sử dụng @XStreamOmitField chú thích để "bỏ qua" các lĩnh vực.

+1

Cảm ơn câu trả lời này. Như đã giải thích trong trang này: Chú thích sẽ chỉ được xử lý nếu bạn gọi 'xstream.processAnnotations()' hoặc 'xstream.autodetectAnnotations (true)'. – mins

+2

Hoặc, 'XStream.omitField'. – amos

Các vấn đề liên quan