protected <C> List<Field> retrieveCachedFields(Class<C> clazz) {
        return fieldListMemoization.computeIfAbsent(clazz, key -> {
            Field[] fields = clazz.getDeclaredFields();
            List<Field> fieldList = new ArrayList<>(fields.length);
            for (Field field : fields) {
                if (!Modifier.isStatic(field.getModifiers())) {
                    field.setAccessible(true);
                    fieldList.add(field);
                }
            }
            return fieldList;
        });
    }
protected <C> List<Field> retrieveCachedFields(Class<C> clazz) {
        return fieldListMemoization.computeIfAbsent(clazz, key -> {
            Field[] fields = clazz.getDeclaredFields();
            List<Field> fieldList = new ArrayList<>(fields.length);
            for (Field field : fields) {
                if (!Modifier.isStatic(field.getModifiers())) {
                    field.setAccessible(true);
                    fieldList.add(field);
                }
            }
            return fieldList;
        });
    }
protected < C > List < Field > retrieveCachedFields ( Class < C > clazz ) { return fieldListMemoization . computeIfAbsent ( clazz , key -> { Field [ ] fields = clazz . getDeclaredFields ( ) ; List < Field > fieldList = new ArrayList <> ( fields . length ) ; for ( Field field : fields ) { if ( ! Modifier . isStatic ( field . getModifiers ( ) ) ) { field . setAccessible ( true ) ; fieldList . add ( field ) ; } } return fieldList ; } ) ; }
This method is thread-safe.
@param clazz never null
@param <C> type
@return never null
This method is thread - safe .