我试过了:
ArrayList<Pelicula> peliculas = YIFY.obtenerPeliculasPorVenir();
成为#obtenerPeliculasPorVenir
:
public static List<Pelicula> obtenerPeliculasPorVenir(){
List peliculas = null;
try {
peliculas = mapper.readValue(new API().peticionTexto("http://yts.re/api/upcoming.json"), new TypeReference<List<Pelicula>>(){});
}
catch (IOException excepcion) {
System.out.println(excepcion.getMessage());
}
return peliculas;
}
}
如果ArrayList
实施 List
,我为什么不能这样做?
是否正在使用 ONLY 解决方案,或者我应该采用其他OOP方法?
答案 0 :(得分:8)
因为任何ArrayList
都是List
,但并非所有List
都是ArrayList
,例如LinkedList
。
是否只能使用其他OOP方法?
否即可。最好的办法是始终编写一个高级接口/抽象类:
List<Pelicula> peliculas = YIFY.obtenerPeliculasPorVenir();
更多信息:
什么时候应该使用向下转发?
当框架仅提供对更高级别类的数据访问时。例如,在Java Web Development中,通过HttpSession
//example to validate if user is logged
HttpSession session = request.getSession();
User loggedUser = (User)session.getAttribute("user"); //it returns Object
if (loggedUser == null) {
//there's no user logged in!
//do something about it!
}
//the user is logged, he/she can continue working...