如何避免使用Spring ConversionService的目标类型为List?
来源:爱站网时间:2021-11-29编辑:网友分享
如何避免使用Spring ConversionService的目标类型为List?有没有人不知道这个问题答案?不知道这个答案的朋友别担心也别紧张,爱站技术小编现在用一篇文章几分钟的时间给大家介绍一下关于这方面问题的介绍,希望能帮助到大家,能给大家带来一定的干货吧。
问题描述
我有以下Spring转换器:
@Component
public class MyObjectToStringList implements Converter>{
@Override
public List convert(MyObject obj) {
List items = new ArrayList(
Arrays.asList(
obj.get().split("\\r?\\n")));
items.remove(0);
return items;
}
}
在另一个组件中,我通过转换服务使用转换器:
@Component
@RequiredArgsConstructor
public class MyService {
private final ConversionService conversionService;
public List get(MyObject obj) {
@SuppressWarnings("unchecked")
List rows = (List) conversionService.convert(obj, List.class);
此方法有效,但是否有避免避免未经检查的演员表?
解决方法:
您可以将目标类型更改为String[]
,并像这样修改转换器:
@Component
public class MyObjectToStringList implements Converter{
@Override
public String[] convert(MyObject obj) {
List items = new ArrayList(
Arrays.asList(
obj.get().split("\\r?\\n")));
items.remove(0);
return items.toArray(new String[0]);
}
}
然后以这种方式执行转换:
List rows = Arrays.asList(conversionService.convert(obj, String[].class));
以上内容就是爱站技术频道小编为大家分享的如何避免使用Spring ConversionService的目标类型为List?看完以上分享之后,大家应该都知道怎么在怎么去更有效的避免这个问题的发生了吧。