Skip to content

Failed to register Lambda Converter for specific type. #487

@yoshikawaa

Description

@yoshikawaa

At ver 2.3.5.
It is failed to register Lambda Converter for specific type.

Converter<String, Email> converter = context -> {
        String[] address = context.getSource().split("@");
        return new Email(address[0], address[1]);
    };
modelMapper.addConverter(converter);

mapper.getTypeMaps().forEach(typeMap -> {
    System.out.println(typeMap);                // -> TypeMap[Unknown -> Email]
    System.out.println(typeMap.getConverter()); // -> $$Lambda$432/480402503@6865c751
});

I want to register the converter [String -> Email], but actually registered [UNKNOWN -> Email]...

It seems ModelMapper#addConverter could not get the correct Source Type from Converter because TypeResolver#resolveRawArguments not support lambda generic type. This is related jhalterman/typetools#41.

I hope to fix this. Regards.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions