public void invalidateMemberCache(Predicate<Class<?>> predicate) {
        if (memberCache == null) {
            return;
        }
        if (predicate == null) {
            memberCache.clear();
        } else {
            memberCache.invalidate((key) -> predicate.test(key.getClazz()));
        }
    }
public void invalidateMemberCache(Predicate<Class<?>> predicate) {
        if (memberCache == null) {
            return;
        }
        if (predicate == null) {
            memberCache.clear();
        } else {
            memberCache.invalidate((key) -> predicate.test(key.getClazz()));
        }
    }
public void invalidateMemberCache ( Predicate < Class < ? > > predicate ) { if ( memberCache == null ) { return ; } if ( predicate == null ) { memberCache . clear ( ) ; } else { memberCache . invalidate ( ( key ) - > predicate . test ( key . getClazz ( ) ) ) ; } }
The member cache may theoretically cause memory leaks due to using hard
references to {@link Class} and {@link Member} instances. As a temporary
workaround we provide a way to invalidate the cache or some of its
entries (e.g. for a concrete classloader).

@param predicate
If null, all cache entries are discarded, otherwise an entry
is only discarded if the given predicate returns
<code>true</code> for the {@link MemberKey#getClass()}
The member cache may theoretically cause memory leaks due to using hard references to { @link Class } and { @link Member } instances . As a temporary workaround we provide a way to invalidate the cache or some of its entries ( e . g . for a concrete classloader ) .