service用返回父类list用子类list接收 java
时间: 2023-09-17 19:10:58 浏览: 59
java学习路线.docx
如果您的 Service 返回的是一个父类对象列表,而您希望在使用该 Service 的地方将其转换为一个子类对象列表,可以使用 Java 8 中引入的流(Stream)和映射(map)方法来实现。
例如,如果您的 Service 返回的是一个 `List<ParentClass>` 对象列表,而您希望将其中所有的对象转换为 `ChildClass` 对象,可以使用以下代码:
```java
List<ParentClass> parentList = myService.getSomeParentObjects();
List<ChildClass> childList = parentList.stream()
.map(parent -> (ChildClass) parent)
.collect(Collectors.toList());
```
在上述代码中,我们首先使用 `stream()` 方法将 `parentList` 转换为一个流,然后使用 `map()` 方法将流中的每个 `ParentClass` 对象转换为 `ChildClass` 对象。转换后的流中的每个对象都是 `ChildClass` 类型,然后我们使用 `collect()` 方法将流中的所有对象收集到一个列表中,并将其转换为一个 `List<ChildClass>` 对象。
需要注意的是,如果 `parentList` 中包含的某个对象不是 `ChildClass` 对象,而是其它类型的 `ParentClass` 或其子类对象,那么上述代码可能会抛出 `ClassCastException` 异常。因此,在进行类型转换时,需要确保对象的实际类型是符合期望的子类类型。
阅读全文