/** * desc to class. * "[Z" => boolean[].class * "[[Ljava/util/Map;" => java.util.Map[][].class * * @param desc desc. * @return Class instance. * @throws ClassNotFoundException */ public static Class<?> desc2class(String desc) throws ClassNotFoundException { return desc2class(ClassHelper.getClassLoader(), desc); }
/** * desc to class. * "[Z" => boolean[].class * "[[Ljava/util/Map;" => java.util.Map[][].class * * @param desc desc. * @return Class instance. * @throws ClassNotFoundException */ public static Class<?> desc2class(String desc) throws ClassNotFoundException { return desc2class(ClassHelper.getClassLoader(), desc); }
@SuppressWarnings("unchecked") public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException { // Object value = readObject(); //read data value String json = this.data.get(KEY_PREFIX + (++index)); //read data type String dataType = this.data.get(KEY_PREFIX + index + "t"); if (dataType != null) { Class clazz = ReflectUtils.desc2class(dataType); if (cls.isAssignableFrom(clazz)) { cls = clazz; } else { throw new IllegalArgumentException("Class \"" + clazz + "\" is not inherited from \"" + cls + "\""); } } logger.debug("index:{}, value:{}", index, json); return objectMapper.readValue(json, cls); }
/** * get class array instance. * * @param cl ClassLoader instance. * @param desc desc. * @return Class[] class array. * @throws ClassNotFoundException */ private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException { if( desc.length() == 0 ) return EMPTY_CLASS_ARRAY; List<Class<?>> cs = new ArrayList<Class<?>>(); Matcher m = DESC_PATTERN.matcher(desc); while(m.find()) cs.add(desc2class(cl, m.group())); return cs.toArray(EMPTY_CLASS_ARRAY); }
/** * get class array instance. * * @param cl ClassLoader instance. * @param desc desc. * @return Class[] class array. * @throws ClassNotFoundException */ private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException { if (desc.length() == 0) return EMPTY_CLASS_ARRAY; List<Class<?>> cs = new ArrayList<Class<?>>(); Matcher m = DESC_PATTERN.matcher(desc); while (m.find()) cs.add(desc2class(cl, m.group())); return cs.toArray(EMPTY_CLASS_ARRAY); }
/** * get class array instance. * * @param cl ClassLoader instance. * @param desc desc. * @return Class[] class array. * @throws ClassNotFoundException */ private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException { if (desc.length() == 0) return EMPTY_CLASS_ARRAY; List<Class<?>> cs = new ArrayList<Class<?>>(); Matcher m = DESC_PATTERN.matcher(desc); while (m.find()) cs.add(desc2class(cl, m.group())); return cs.toArray(EMPTY_CLASS_ARRAY); }
/** * desc to class. * "[Z" => boolean[].class * "[[Ljava/util/Map;" => java.util.Map[][].class * * @param desc desc. * @return Class instance. * @throws ClassNotFoundException */ public static Class<?> desc2class(String desc) throws ClassNotFoundException { return desc2class(ClassHelper.getClassLoader(), desc); }
/** * desc to class. * "[Z" => boolean[].class * "[[Ljava/util/Map;" => java.util.Map[][].class * * @param desc desc. * @return Class instance. * @throws ClassNotFoundException */ public static Class<?> desc2class(String desc) throws ClassNotFoundException { return desc2class(ClassHelper.getClassLoader(), desc); }
@SuppressWarnings("unchecked") public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException { // Object value = readObject(); //read data value String json = this.data.get(KEY_PREFIX + (++index)); //read data type String dataType = this.data.get(KEY_PREFIX + index + "t"); if (dataType != null) { Class clazz = ReflectUtils.desc2class(dataType); if (cls.isAssignableFrom(clazz)) { cls = clazz; } else { throw new IllegalArgumentException("Class \"" + clazz + "\" is not inherited from \"" + cls + "\""); } } logger.debug("index:{}, value:{}", index, json); return objectMapper.readValue(json, cls); }
/** * get class array instance. * * @param cl ClassLoader instance. * @param desc desc. * @return Class[] class array. * @throws ClassNotFoundException */ private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException { if( desc.length() == 0 ) return EMPTY_CLASS_ARRAY; List<Class<?>> cs = new ArrayList<Class<?>>(); Matcher m = DESC_PATTERN.matcher(desc); while(m.find()) cs.add(desc2class(cl, m.group())); return cs.toArray(EMPTY_CLASS_ARRAY); }
Class<?> c = ReflectUtils.desc2class(desc); return Builder.register(c).parseFrom(this);
Class<?> c = ReflectUtils.desc2class(desc); return Builder.register(c).parseFrom(this);