Interface InjectiveFunction<T,​R>

  • All Superinterfaces:
    Function<T,​R>
    All Known Subinterfaces:
    EncodingFunction<T>
    All Known Implementing Classes:
    EncoderEntryMapper, EncoderKeyMapper, EncoderValueMapper

    public interface InjectiveFunction<T,​R>
    extends Function<T,​R>
    This is a marker interface to be used with Function which signals to some implementors that the function returns distinct values. This can be helpful because when a function is applied to data is ambiguous if the resulting data produced is distinct or not. This allows some callers of this method to apply additional performance optimizations taking this into account.

    If a function is implemented with this and it doesn't produce distinct values, the operation of the consumer of this function may be undefined.

    Since:
    9.0
    Author:
    wburns