/** * Attention, this doesn't handle primitive classes correctly, nor numerical conversions. */ public static Set getAssignables(Class c1, Class c2) { Set s = new HashSet(); collectAssignables(c1, c2, s); return s; }
private static void collectAssignables(Class c1, Class c2, Set s) { if (c1.isAssignableFrom(c2)) { s.add(c1); } Class sc = c1.getSuperclass(); if (sc != null) { collectAssignables(sc, c2, s); } Class[] itf = c1.getInterfaces(); for (int i = 0; i < itf.length; ++i) { collectAssignables(itf[i], c2, s); } }
/** * Attention, this doesn't handle primitive classes correctly, nor numerical conversions. */ public static Set getAssignables(Class c1, Class c2) { Set s = new HashSet(); collectAssignables(c1, c2, s); return s; }
/** * Attention, this doesn't handle primitive classes correctly, nor numerical conversions. */ public static Set getAssignables(Class c1, Class c2) { Set s = new HashSet(); collectAssignables(c1, c2, s); return s; }
private static void collectAssignables(Class c1, Class c2, Set s) { if (c1.isAssignableFrom(c2)) { s.add(c1); } Class sc = c1.getSuperclass(); if (sc != null) { collectAssignables(sc, c2, s); } Class[] itf = c1.getInterfaces(); for (int i = 0; i < itf.length; ++i) { collectAssignables(itf[i], c2, s); } }
private static void collectAssignables(Class c1, Class c2, Set s) { if (c1.isAssignableFrom(c2)) { s.add(c1); } Class sc = c1.getSuperclass(); if (sc != null) { collectAssignables(sc, c2, s); } Class[] itf = c1.getInterfaces(); for (int i = 0; i < itf.length; ++i) { collectAssignables(itf[i], c2, s); } }