利用反射机制创建对象----反序列化小知识

            //通过包名,获得对象
            Class clazz = Class.forName(packetname);        
            Object obj = clazz.newInstance();
            //遍历fields 写入值
            for (Field field : fieldList) {
                byte dataType = field.getDataType();

                
                
                //类中的变量名
                String classKey = valueMap.get("key");
                        
                //类中变量值        
                Object value = valueMap.get("value");            
                
                
                //getDeclaredField 用于private 修饰的变量
                java.lang.reflect.Field f = obj.getClass().getDeclaredField(classKey);
                
                 f.setAccessible(true);

                
                    f.set(obj, value);
        
                
                
                 f.setAccessible(false);
            }

posted @ 2018-08-06 17:59  BBJB  阅读(510)  评论(0编辑  收藏  举报