private LinkedList<Field> get_all_field(Class<?> in_class){
		String in_class_name = in_class.getName();
		LinkedList<Field> return_result = class_attr_map.get(in_class_name);
		if(return_result == null){
			Field[] cur_fields = in_class.getDeclaredFields();
			return_result = new LinkedList<>();
			for(int i = 0; i < cur_fields.length; i++){
				return_result.add(cur_fields[i]);
			}
			Class<?> super_class = in_class.getSuperclass();
			if(super_class != null){
				return_result.addAll(get_all_field(super_class));
			}
			class_attr_map.put(in_class_name, return_result);
		}
		return return_result;
	}