parquet-column/src/main/java/org/apache/parquet/filter2/predicate/FilterApi.java
public static <T extends Comparable<T>, U extends UserDefinedPredicate<T>>
    UserDefined<T, U> userDefined(Column<T> column, Class<U> clazz) {
    return new UserDefinedByClass<T, U>(column, clazz);
  }
public static <T extends Comparable<T>, U extends UserDefinedPredicate<T>>
    UserDefined<T, U> userDefined(Column<T> column, Class<U> clazz) {
    return new UserDefinedByClass<T, U>(column, clazz);
  }
public static < T extends Comparable < T > , U extends UserDefinedPredicate < T > > UserDefined < T , U > userDefined ( Column < T > column , Class < U > clazz ) { return new UserDefinedByClass < T , U > ( column , clazz ) ; }
Keeps records that pass the provided {@link UserDefinedPredicate}
<p>
The provided class must have a default constructor. To use an instance
of a UserDefinedPredicate instead, see userDefined below.

@param column a column reference created by FilterApi
@param clazz a user-defined predicate class
@param <T> the Java type of values in the column
@param <U> a user-defined predicate for values of type T
@return a user-defined predicate for the given column
Keeps records that pass the provided { @link UserDefinedPredicate } <p > The provided class must have a default constructor . To use an instance of a UserDefinedPredicate instead see userDefined below .