Field f= c.getDeclaredField((String)Serializer.valueOf(serialized.substring(offset), length, context, null));
Field f= Serializer.getFieldAddressOf(c, (String)Serializer.valueOf(serialized.substring(offset), length, context, null));
            public Object handle(String serialized, Length length, SerializerContext context, Class clazz) throws Exception {                 String classnamelength= serialized.substring(2, serialized.indexOf(':', 2));                int offset= classnamelength.length() + 2 + 2;                int parsed= Integer.parseInt(classnamelength);                Class c= null;                Object instance= null;                // Load class                try {                    c= context.classLoader.loadClass(serialized.substring(offset, parsed+ offset));                 } catch (ClassNotFoundException e) {                    throw new SerializationException(context.classLoader + ": " + e.getMessage());                }                                // Instanciate                instance= c.newInstance();                                String objectlength= serialized.substring(parsed+ offset+ 2, serialized.indexOf(':', parsed+ offset+ 2));                offset+= parsed+ 2 + objectlength.length() + 2;                                // Set field values                for (int i= 0; i < Integer.parseInt(objectlength); i++) {                    Field f= c.getDeclaredField((String)Serializer.valueOf(serialized.substring(offset), length, context, null));                    offset+= length.value;                    Object value= Serializer.valueOf(serialized.substring(offset), length, context, f.getType());                    offset+= length.value;                                        try {                        f.setAccessible(true);                        if (f.getType() == char.class) {                            f.setChar(instance, ((String)value).charAt(0));                        } else if (f.getType() == byte.class) {                            f.setByte(instance, ((Byte)value).byteValue());                        } else if (f.getType() == short.class) {                            f.setShort(instance, ((Short)value).shortValue());                        } else if (f.getType() == int.class) {                            f.setInt(instance, ((Integer)value).intValue());                        } else if (f.getType() == long.class) {                            f.setLong(instance, ((Long)value).longValue());                        } else if (f.getType() == double.class) {                            f.setDouble(instance, ((Double)value).doubleValue());                        } else if (f.getType() == float.class) {                            f.setFloat(instance, ((Float)value).floatValue());                        } else if (f.getType() == boolean.class) {                            f.setBoolean(instance, ((Boolean)value).booleanValue());                        } else {                            f.set(instance, value);                        }                    } catch (IllegalArgumentException e) {                        throw new SerializationException(                            "Illegal argument while setting " + c.getName() + "." + f + " to " +                             (null == value ? "(null)" : value.getClass().getName()) + ": " +                             e.getMessage()                        );                    } catch (IllegalAccessException e) {                        throw new SerializationException(                            "Access violation while setting " + c.getName() + "." + f + " to " +                             (null == value ? "(null)" : value.getClass().getName()) + ": " +                             e.getMessage()                        );                    }                }                length.value= offset + 1;                return instance;            }