2013-10-22 49 views
1

我一直在尝试将arraylist传递到我的出租菜单类和提取相关的电影标题,ID等但我不断收到不兼容类型的错误。有人能告诉我,我的观念错了吗?传递ArrayList并返回值为输出

import java.util.ArrayList; 
public class DVDManager { 
    private ArrayList<DVD> group; 
    private int Id; 
    private String title; 
    private char genre; 

public DVDManager(){ 
    this.group = new ArrayList<DVD>(); 
} 

public DVDManager (int Id, String title, char genre){ 
    this.Id = Id; 
    this.title = title; 
    this.genre = genre; 
    this.group = new ArrayList<DVD>(); 
} 
public int getId(){ 
    return Id; 
} 

public String getTitle(){ 
    return title; 
} 

public char getGenre(){ 
    return genre; 
} 

public void addDVD (int Id, String title, char genre){ 
    Id = group.size()+1; 
    group.add(new DVD(Id, title, genre)); 
} 

public ArrayList<DVD> retrievalAll(){ 
    return group; 
} 
} 

import java.util.*; 
public class RentalMenu{ 
    private DVDManager dvdManager; 

public RentalMenu(){ 
    dvdManager = new DVDManager(); 
} 

public void processListAllDVDs(){ 

    DVDManager m1 = new DVDManager(); 

    //**ERROR IS THE LINE BELOW!!!!!!!!!!!!!** 

    ArrayList<DVD> myList = m1.retrievalAll(); 
    //listDVDs = dvdManager.retrievalAll(); 
    for (int i=0; i<myList.size(); i++){ 

     DVDManager listDVDs = myList.get(i); 
     System.out.println(listDVDs.getTitle + listDVDs.getGenre); 
    } 
} 

public void readOption(){ 
    System.out.println("*=======================*"); 
    System.out.println("* Choose the following* "); 
    System.out.println("1) Add a new DVD   "); 
    System.out.println("2) search a DVD   "); 
    System.out.println("3) Rent a DVD   "); 
    System.out.println("4) Show all DVD  "); 
    System.out.println("5) EXIT  "); 
    Scanner sc = new Scanner(System.in); 

    int option = sc.nextInt(); 
    int movId = 1; 

     if (option == 1){ 
      System.out.println("Enter movie title"); 
      sc.nextLine(); 
      String newMovie = sc.nextLine(); 
      System.out.println("Enter genre"); 
      char g = sc.nextLine().charAt(0); 
      dvdManager.addDVD(movId, newMovie, g); 
      processListAllDVDs(); 
     } 

} 
} 
+0

什么线给你的错误? –

+2

'ArrayList '包含'DVD'而不是'DVDManager'。所以myList.get(i);'会给你一个'DVD'。您正将其分配给“DVDManager”。 –

+0

DVDManager listDVDs = myList.get(i) –

回答

1
for (int i=0; i<myList.size(); i++){ 
     DVDManager listDVDs = myList.get(i);  //here is the problem 
     System.out.println(listDVDs.getTitle + listDVDs.getGenre); 
    } 

您需要更改到

DVD dvd= myList.get(i); 
+0

必需ArrayList found ArrayList

+0

@TanHongJie然后你如何声明像这个私人ArrayList 组; – Prabhakaran

+0

对不起,错误的输入,对错误进行了必要的更改 –