Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 类型不匹配:无法从列表转换<;捕获#2-of?扩展IDto>;列出<;以下响应到>;_Java_Oop_Inheritance - Fatal编程技术网

Java 类型不匹配:无法从列表转换<;捕获#2-of?扩展IDto>;列出<;以下响应到>;

Java 类型不匹配:无法从列表转换<;捕获#2-of?扩展IDto>;列出<;以下响应到>;,java,oop,inheritance,Java,Oop,Inheritance,我有一个接口IDto和followerresponsedto实现IDto。我在一个名为AbstractController的类中有一个这样的方法: protected final List<? extends IDto> findPaginatedAndSortedInternal(page, size, sortBy, sortOrder, uriBuilder, response){ final Page<T> resultPage = getService(

我有一个接口
IDto
followerresponsedto
实现
IDto
。我在一个名为
AbstractController
的类中有一个这样的方法:

protected final List<? extends IDto> findPaginatedAndSortedInternal(page, size, sortBy, sortOrder, uriBuilder, response){
    final Page<T> resultPage = getService().findAllPaginatedAndSortedRaw(page, size, sortBy, sortOrder);
    if (page > resultPage.getTotalPages()) {
        throw new ResourceNotFoundException();
    }

    return DtoEntityConverter.convertToResponseDtoList(Lists.newArrayList(resultPage.getContent()));
}
public class FollowingController extends AbstractReadOnlyController<Following> {
    @Override
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List<FollowingResponseDto> findAllPaginatedAndSorted(
        final int page,
        final int size,
        final String sortBy,
         final String sortOrder,
        final UriComponentsBuilder uriBuilder, final HttpServletResponse response) {
        return findPaginatedAndSortedInternal(page, size, sortBy, sortOrder, uriBuilder, response);
    }
}
最后,我有一个类扩展了
AbstractController

protected final List<? extends IDto> findPaginatedAndSortedInternal(page, size, sortBy, sortOrder, uriBuilder, response){
    final Page<T> resultPage = getService().findAllPaginatedAndSortedRaw(page, size, sortBy, sortOrder);
    if (page > resultPage.getTotalPages()) {
        throw new ResourceNotFoundException();
    }

    return DtoEntityConverter.convertToResponseDtoList(Lists.newArrayList(resultPage.getContent()));
}
public class FollowingController extends AbstractReadOnlyController<Following> {
    @Override
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List<FollowingResponseDto> findAllPaginatedAndSorted(
        final int page,
        final int size,
        final String sortBy,
         final String sortOrder,
        final UriComponentsBuilder uriBuilder, final HttpServletResponse response) {
        return findPaginatedAndSortedInternal(page, size, sortBy, sortOrder, uriBuilder, response);
    }
}
public类followController扩展AbstractReadOnlyController{
@凌驾
@RequestMapping(method=RequestMethod.GET)
@应答器
公共列表FindAllPaginatedSorted(
最后一页,
最终整数大小,
最后一个字符串排序,
最后的字符串排序器,
最终UriComponents构建器uriBuilder,最终HttpServletResponse响应){
返回findPaginatedAndSortedInternal(页面、大小、排序方式、排序器、uriBuilder、响应);
}
}
调用
返回findPaginatedAndSortDinternal(页面、大小、排序方式、排序器、uriBuilder、响应)给了我编译错误:

类型不匹配:无法从列表转换为列表


我哪里出错了?

请注意,问题仍然是为什么您的内部方法使用接口,而公开的方法使用具体的类。通常情况下是相反的。如果可能的话,我建议将
findallpaginatedandsordered
的返回类型更改为
List,请注意,问题仍然是为什么您的内部方法使用接口,而公开的方法使用具体类。通常情况下是相反的。如果可能的话,我建议将
findallpaginatedandsordered
的返回类型改为
list。我想我希望返回类型为具体类的原因只是为了在查看控制器时清楚返回什么。我试图实现的东西不值得这么明显吗?我想我希望返回类型是具体类的原因是,在查看控制器时,返回的内容非常清楚。我努力实现的目标是否不值得这样的关注?
return (List<FollowingResponseDto>)(List<?>)findPaginatedAndSortedInternal(...);
var idtoList = findPaginatedAndSortedInternal(...);
var followingResponseDtoList = new ArrayList<FollowingResponseDto>();
for (var idto : idtoList) {
    if (idto instanceof FollowingResponseDto)
        followingResponseDtoList.add((FollowingResponseDto)idto);
}
return followingResponseDtoList;