/** * getMoviesByType, returns a filtered list of a wanted Type * @param <T> * @param movieList * @param wantedType * @return A list of ONLY the type wanted */ public <T> MovieList<T> filterMovieList (MovieList<Movie> movieList, T wantedType) { MovieList<Movie> newMovieList = new MovieList<Movie>(); for (Movie movie : movieList) { if (movie.getClass() == wantedType.getClass())//Same class instances { newMovieList.add(movie); } } return (MovieList<T>) newMovieList; //Cast to right Type }