Optional<Member> find(Class<?> type, String path) {
    ClassAndPath classAndPath = ImmutableClassAndPath.of(type, path);
    Member member = this.member.computeIfAbsent(classAndPath, key -> {
      ClassScanner scanner = this.scanner.computeIfAbsent(key.type(), MemberLookupCache::createScannerForType);
      return scanner.stream().filter(m -> m.getName().equals(path)).findFirst().orElse(null);
    });

    return Optional.ofNullable(member);
  }
Caches reflection calls to speedup criteria creation.

<p>Internal API not to be used outside criteria package</p>

<p>Thread-safe implementation</p>
criteria/common/src/org/immutables/criteria/matcher/MemberLookupCache.java