public static String getClassName(Class type) { String className = ClassManager.getClassAlias(type); if (className == null) { className = type.getName().replace('.', '_').replace('$', '_'); ClassManager.register(type, className); } return className; }
public static Class getClass(String className) { if (ClassManager.containsClass(className)) { return ClassManager.getClass(className); } StringBuffer cn = new StringBuffer(className); LinkedList al = new LinkedList(); int p = className.indexOf("_"); while (p > -1) { al.add(HproseHelper.valueOf(p)); p = className.indexOf("_", p + 1); } Class type = null; if (al.size() > 0) { try { int size = al.size(); int[] pos = new int[size]; int i = 0; for (Iterator iter = al.iterator(); iter.hasNext(); i++) { pos[i] = ((Integer) iter.next()).intValue(); } type = getClass(cn, pos, 0, '.'); if (type == null) { type = getClass(cn, pos, 0, '_'); } if (type == null) { type = getInnerClass(cn, pos, 0, '$'); } } catch (Exception e) { } } else { try { type = Class.forName(className); } catch (Exception e) { } } ClassManager.register(type, className); return type; }