/** Returns the readResolve method */ protected Method getReadResolve(Class cl) { for (; cl != null; cl = cl.getSuperclass()) { Method[] methods = cl.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { Method method = methods[i]; if (method.getName().equals("readResolve") && method.getParameterTypes().length == 0) return method; } } return null; }