private static boolean parameterClassEquals()

in flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/LegacyUserDefinedFunctionInference.java [335:362]


    private static boolean parameterClassEquals(Class<?> candidate, Class<?> expected) {
        return candidate == null
                || candidate == expected
                || expected == Object.class
                || candidate == Object.class
                || // Special case when we don't know the type
                expected.isPrimitive() && Primitives.wrap(expected) == candidate
                || candidate == Date.class && (expected == Integer.class || expected == int.class)
                || candidate == Time.class && (expected == Integer.class || expected == int.class)
                || candidate == StringData.class && expected == String.class
                || candidate == String.class && expected == StringData.class
                || candidate == TimestampData.class && expected == LocalDateTime.class
                || candidate == Timestamp.class && expected == TimestampData.class
                || candidate == TimestampData.class && expected == Timestamp.class
                || candidate == LocalDateTime.class && expected == TimestampData.class
                || candidate == TimestampData.class && expected == Instant.class
                || candidate == Instant.class && expected == TimestampData.class
                || RowData.class.isAssignableFrom(candidate) && expected == Row.class
                || candidate == Row.class && RowData.class.isAssignableFrom(expected)
                || RowData.class.isAssignableFrom(candidate) && expected == RowData.class
                || candidate == RowData.class && RowData.class.isAssignableFrom(expected)
                || candidate == DecimalData.class && expected == BigDecimal.class
                || candidate == BigDecimal.class && expected == DecimalData.class
                || (candidate.isArray()
                        && expected.isArray()
                        && candidate.getComponentType() != null
                        && expected.getComponentType() == Object.class);
    }