- 判断某个class是否为指定 interface 的实现  ```java /** * 获取 EntityImpl 接口的所有实体实现类 * * @param clazz EntityImpl`接口的实现类 * @return entity类家族 */ public static Set<Class<? extends EntityImpl>> getFamily(Class<?> clazz) { var items = new ArrayList<Class<? extends EntityImpl>>(); // 使用通配符泛型 var classz = clazz; if (classz.getSuperclass().isAnnotationPresent(EntityKey.class)) classz = classz.getSuperclass(); items.add(classz.asSubclass(EntityImpl.class)); for (var item : classz.getDeclaredClasses()) { if (EntityImpl.class.isAssignableFrom(item)) items.add(item.asSubclass(EntityImpl.class)); } var result = new HashSet<Class<? extends EntityImpl>>(); for (var item : items) { if (item.isAnnotationPresent(EntityKey.class)) result.add(item); } return result; } ``` - 获取指定接口的所有子类 - 获取指定父类的所有子类 - 获取某个注解的所有子类
Activity