### Question:
CustomElementMatchers { public static ElementMatcher.Junction<ClassLoader> classLoaderCanLoadClass(final String className) { return new ElementMatcher.Junction.AbstractBase<ClassLoader>() { private final boolean loadableByBootstrapClassLoader = canLoadClass(null, className); private final WeakConcurrentMap<ClassLoader, Boolean> cache = WeakMapSupplier.createMap(); @Override public boolean matches(@Nullable ClassLoader target) { if (target == null) { return loadableByBootstrapClassLoader; } Boolean result = cache.get(target); if (result == null) { result = canLoadClass(target, className); cache.put(target, result); } return result; } }; }  static ElementMatcher.Junction<NamedElement> isInAnyPackage(Collection<String> includedPackages,
                                                                       ElementMatcher.Junction<NamedElement> defaultIfEmpty); static ElementMatcher.Junction<ClassLoader> classLoaderCanLoadClass(final String className); static ElementMatcher.Junction<ProtectionDomain> implementationVersionLte(final String version); static MethodHierarchyMatcher overridesOrImplementsMethodThat(ElementMatcher<? super MethodDescription> methodElementMatcher); static ElementMatcher.Junction<NamedElement> matches(final WildcardMatcher matcher); static ElementMatcher.Junction<NamedElement> anyMatch(final List<WildcardMatcher> matchers); static ElementMatcher.Junction<AnnotationSource> annotationMatches(final String annotationWildcard); static ElementMatcher.Junction<T> isProxy();  }### Answer:
@Test void testClassLoaderCanLoadClass() { assertThat(classLoaderCanLoadClass(Object.class.getName()).matches(ClassLoader.getSystemClassLoader())).isTrue(); assertThat(classLoaderCanLoadClass(Object.class.getName()).matches(null)).isTrue(); assertThat(classLoaderCanLoadClass("not.Here").matches(ClassLoader.getSystemClassLoader())).isFalse(); }