我有一个用于电影的ArrayList,它以电影title
,year
,genre
,price
作为参数。 title
,year
,price
没有错误。我有3个类,Movie
,Catalogue
和Genre
,并且为我提供了类Genre
的代码。 Genre
似乎发生了错误。
我没有更改Genre
类,但是我尝试使用字符串,但是它带有错误,唯一的例外是当我放入null
时。
我希望能够添加到ArrayList中,但是genre
出现错误。
请原谅我缺乏理解,这是(技术上)我编程的第一年。
答案 0 :(得分:7)
您的Movie
构造函数仅将一个Genre
作为参数,而应将List<Genre>
作为参数:
Movie(String title, int year, Genre genre, int price){
}
应该是:
Movie(String title, int year, List<Genre> genres, int price){
}
完整电影课:
public class Movie
{
private String title;
private int year;
private int price;
private List<Genre> genres;
Movie(String title, int year, List<Genre> genres, int price){
this.title = title;
this.year = year;
this.genres = genres;
this.price = price;
}
}
编辑:如果您不能更改Movie类,则意味着您只能传递一个Genre
,而不能传递List
。因此,您必须选择要通过的流派:
public class Catalogue
{
private Kiosk kiosk;
private List<Movie> moviesAvailable = new ArrayList<Movie>();
private Set<Genre> genres = new HashSet<Genre>();
Catalogue(Kiosk kiosk){
}
Catalogue(){
Genre sciFi = new Genre("SciFi");
Genre drama = new Genre("Drama");
Genre crime = new Genre("Crime");
genres.add(sciFi);
genres.add(drama);
genres.add(crime);
moviesAvailable.add(new Movie("Matrix", 1999, sciFi, 3));
moviesAvailable.add(new Movie("Titanic", 1997, drama, 4));
moviesAvailable.add(new Movie("The Silence of the Lambs", 1991, crime, 3));
moviesAvailable.add(new Movie("Jurassic Park", 1993, sciFi, 4));
moviesAvailable.add(new Movie("Terminator 2", 1991, sciFi, 3));
}
}