SpringBoot添加Converter的时候用lambda报错

本文探讨了Java中`Converter`接口的使用,特别是`addConverter`方法的重载。错误提示源于不正确的lambda表达式,正确方式是提供源类型和目标类型的Class对象。示例代码展示了如何通过lambda表达式实现从字符串到Pet对象的转换。学习此内容有助于提升Java编程中的类型转换能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、addConverter方法有几个重载

报错是因为你调用的是这个:

	void addConverter(Converter<?, ?> converter);

这个调用的lambda表达式会让产生的转换器无法解析什么是传入类型,什么是目标类型,这就导致无法生效

所以你要用lambda的话你需要用:

	<S, T> void addConverter(Class<S> sourceType, Class<T> targetType, Converter<? super S, ? extends T> converter);

其中参数的意思就是传入类型和需要转换成的类型。,还有转换器定义;

2、代码示例:

由于是学习了雷神的课程所以示例差不多哈哈哈!

 @Override
            public void addFormatters(FormatterRegistry registry) {
                registry.addConverter(String.class,Pet.class,(source)->{
                            //阿猫,5
                            if (source!=null) {
                                String[] split = source.split(",");
                                Pet pet = new Pet();
                                pet.setName(split[0]);
                                pet.setAge(Integer.parseInt(split[1]));
                                return pet;
                            }
                            return null;
                    });

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值