bitsetconverter.java
来自「xstream是一个把java object序列化成xml文件的开源库,轻便好用」· Java 代码 · 共 51 行
JAVA
51 行
package com.thoughtworks.xstream.converters.collections;import com.thoughtworks.xstream.converters.Converter;import com.thoughtworks.xstream.converters.MarshallingContext;import com.thoughtworks.xstream.converters.UnmarshallingContext;import com.thoughtworks.xstream.io.HierarchicalStreamReader;import com.thoughtworks.xstream.io.HierarchicalStreamWriter;import java.util.BitSet;import java.util.StringTokenizer;/** * Converts a java.util.BitSet to XML, as a compact * comma delimited list of ones and zeros. * * @author Joe Walnes */public class BitSetConverter implements Converter { public boolean canConvert(Class type) { return type.equals(BitSet.class); } public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { BitSet bitSet = (BitSet) source; StringBuffer buffer = new StringBuffer(); boolean seenFirst = false; for (int i = 0; i < bitSet.length(); i++) { if (bitSet.get(i)) { if (seenFirst) { buffer.append(','); } else { seenFirst = true; } buffer.append(i); } } writer.setValue(buffer.toString()); } public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { BitSet result = new BitSet(); StringTokenizer tokenizer = new StringTokenizer(reader.getValue(), ",", false); while (tokenizer.hasMoreTokens()) { int index = Integer.parseInt(tokenizer.nextToken()); result.set(index); } return result; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?