Java 将字符串列表转换为单个对象
我们有一个字符串列表,希望使用该列表中的所有元素创建一个对象。列表可以有不同数量的元素,因此创建对象可能会导致NPE。创建对象的更好方法是什么Java 将字符串列表转换为单个对象,java,list,java-8,Java,List,Java 8,我们有一个字符串列表,希望使用该列表中的所有元素创建一个对象。列表可以有不同数量的元素,因此创建对象可能会导致NPE。创建对象的更好方法是什么 List<String> example = {'BookName', 'value','3'} BookRating.build.getBookName(example.get(0)).getBookValue(example.get(1)).getRating(example.get(2)).build(); 列表示例={'BookN
List<String> example = {'BookName', 'value','3'}
BookRating.build.getBookName(example.get(0)).getBookValue(example.get(1)).getRating(example.get(2)).build();
列表示例={'BookName','value','3'}
BookRating.build.getBookName(example.get(0)).getBookValue(example.get(1)).getRating(example.get(2)).build();
当示例只有2个值时,这可能会导致NPE。有什么建议吗
编辑:我们可以使用1/2/3值的对象。您可以像这样使用反射: 按其大小对所有Book类构造函数进行分组
List<String> example = List.of("BookName", "value","3");
Map<Integer, Constructor<?>> groupBySize =
Arrays.stream(Book.class.getConstructors())
.collect(Collectors.toMap(Constructor::getParameterCount, Function.identity()));
您可以检查列表的长度,如果少于3个元素,则不生成分级。这些对象可以仅使用第一个参数创建。您可以在if语句中检查长度:`if(example.size()==1){…}else if(example.size()==2){…}。。。。。
Book book = (Book) groupBySize.get(example.size()).newInstance(example.toArray());