### Question:
ResolverUtil { public ResolverUtil<T> findImplementations(Class<?> parent, String... packageNames) { if (packageNames == null) { return this; } Test test = new IsA(parent); for (String pkg : packageNames) { find(test, pkg); } return this; }  Set<Class<? extends T>> getClasses(); ClassLoader getClassLoader(); void setClassLoader(ClassLoader classloader); ResolverUtil<T> findImplementations(Class<?> parent, String... packageNames); ResolverUtil<T> findAnnotated(Class<? extends Annotation> annotation, String... packageNames); ResolverUtil<T> find(Test test, String packageName);  }### Answer:
@Test void findImplementations() { ResolverUtil<VFS> resolverUtil = new ResolverUtil<>(); resolverUtil.findImplementations(VFS.class, "org.apache.ibatis.io"); Set<Class<? extends VFS>> classSets = resolverUtil.getClasses(); assertEquals(classSets.size(), 3); classSets.forEach(c -> assertTrue(VFS.class.isAssignableFrom(c))); }