@Override
      public Key parseKey(SerializationT serialization, @Nullable SecretKeyAccess access)
          throws GeneralSecurityException {
        return function.parseKey(serialization, access);
      }
Creates a KeyParser object.

<p>In order to create a KeyParser object, one typically writes a function

<pre>{@code
class MyClass {
  private static MyKey parse(MySerialization key, @Nullable SecretKeyAccess access)
            throws GeneralSecurityException {
    ...
  }
}
}</pre>

This function can then be used to create a {@code KeyParser}:

<pre>{@code
KeyParser<MyKey, MySerialization> parser =
      KeyParser.create(MyClass::parse, objectIdentifier, MySerialization.class);
}</pre>

Note that calling this function twice will result in objects which are not equal according to
{@code Object.equals}, and hence cannot be used to re-register a previously registered object.

@param function The function used to parse a Key
@param objectIdentifier The identifier to be returned by {@link #getObjectIdentifier}
@param serializationClass The class object corresponding to {@code SerializationT}
java_src/src/main/java/com/google/crypto/tink/internal/KeyParser.java