### Question:
FastActorClassFinder implements ActorClassFinder { @SuppressWarnings("unchecked") @Override public <T extends Actor> Collection<Class<? extends T>> findActorInterfaces(final Predicate<Class<T>> predicate) { List<Class<? extends T>> interfaces = null; for (Class<?> concreteInterface : concreteImplementations.keySet()) { if (predicate.test((Class<T>) concreteInterface)) { if (interfaces == null) { interfaces = new ArrayList<>(); } interfaces.add((Class<T>) concreteInterface); } } return interfaces != null ? interfaces : Collections.emptyList(); } FastActorClassFinder(final String... actorBasePackages);  FastActorClassFinder(final ExecutorService executor, final int parallelism, final String... actorBasePackages); @Override Task<?> start(); @SuppressWarnings("unchecked") @Override Class<? extends T> findActorImplementation(Class<T> actorInterface); @SuppressWarnings("unchecked") @Override Collection<Class<? extends T>> findActorInterfaces(final Predicate<Class<T>> predicate);  }### Answer:
@Test public void testFindActorInterfaces() throws Exception { Collection<Class<? extends Actor>> actorInterfaces = actorClassFinder.findActorInterfaces(ScheduledTask.class::isAssignableFrom); assertEquals(2, actorInterfaces.size()); }