Interface ArgumentConverter
- All Known Implementing Classes:
AnnotationBasedArgumentConverter,DefaultArgumentConverter,SimpleArgumentConverter,TypedArgumentConverter
ArgumentConverter is an abstraction that allows an input object to
be converted to an instance of a different class.
Such an ArgumentConverter is applied to the method parameter
of a @ParameterizedTest
or a constructor parameter or
@Parameter-annotated field of a
@ParameterizedClass with
the help of a
@ConvertWith
annotation.
Implementations must provide a no-args constructor or a single unambiguous constructor to use parameter resolution. They should not make any assumptions regarding when they are instantiated or how often they are called. Since instances may potentially be cached and called from different threads, they should be thread-safe.
Extend SimpleArgumentConverter if your implementation only needs
to know the target type and does not need access to the ParameterContext
to perform the conversion.
Extend TypedArgumentConverter if your implementation always converts
from a given source type into a given target type and does not need access to
the ParameterContext to perform the conversion.
- Since:
- 5.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescription@Nullable Objectconvert(@Nullable Object source, ParameterContext context) Convert the suppliedsourceobject according to the suppliedcontext.default @Nullable Objectconvert(@Nullable Object source, FieldContext context) Convert the suppliedsourceobject according to the suppliedcontext.
-
Method Details
-
convert
@Nullable Object convert(@Nullable Object source, ParameterContext context) throws ArgumentConversionException Convert the suppliedsourceobject according to the suppliedcontext.- Parameters:
source- the source object to convert; may benullcontext- the parameter context where the converted object will be supplied; nevernull- Returns:
- the converted object; may be
nullbut only if the target type is a reference type - Throws:
ArgumentConversionException- if an error occurs during the conversion
-
convert
@API(status=EXPERIMENTAL, since="6.0") default @Nullable Object convert(@Nullable Object source, FieldContext context) throws ArgumentConversionException Convert the suppliedsourceobject according to the suppliedcontext.- Parameters:
source- the source object to convert; may benullcontext- the field context where the converted object will be injected; nevernull- Returns:
- the converted object; may be
nullbut only if the target type is a reference type - Throws:
ArgumentConversionException- if an error occurs during the conversion- Since:
- 5.13
-