Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串列表转换为单个对象_Java_List_Java 8 - Fatal编程技术网

Java 将字符串列表转换为单个对象

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

我们有一个字符串列表,希望使用该列表中的所有元素创建一个对象。列表可以有不同数量的元素,因此创建对象可能会导致NPE。创建对象的更好方法是什么

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());