public static ClassNode findParameterizedTypeFromCache(final ClassNode genericsClass, final ClassNode actualType, boolean tryToFindExactType) {
        if (!PARAMETERIZED_TYPE_CACHE_ENABLED) {
            return findParameterizedType(genericsClass, actualType, tryToFindExactType);
        }

        SoftReference<ClassNode> sr = PARAMETERIZED_TYPE_CACHE.getAndPut(new ParameterizedTypeCacheKey(genericsClass, actualType), key -> new SoftReference<>(findParameterizedType(key.getGenericsClass(), key.getActualType(), tryToFindExactType)));

        return null == sr ? null : sr.get();
    }
public static ClassNode findParameterizedTypeFromCache ( final ClassNode genericsClass , final ClassNode actualType , boolean tryToFindExactType ) { if ( ! PARAMETERIZED_TYPE_CACHE_ENABLED ) { return findParameterizedType ( genericsClass , actualType , tryToFindExactType ) ; } SoftReference < ClassNode > sr = PARAMETERIZED_TYPE_CACHE . getAndPut ( new ParameterizedTypeCacheKey ( genericsClass , actualType ) , key -> new SoftReference < > ( findParameterizedType ( key . getGenericsClass ( ) , key . getActualType ( ) , tryToFindExactType ) ) ) ; return null == sr ? null : sr . get ( ) ; }
Try to get the parameterized type from the cache.
If no cached item found, cache and return the result of {@link #findParameterizedType(ClassNode, ClassNode, boolean)}