2016-04-02 3 views
-1

Immer wenn ich versuche, eine Methode für mein Array zu erstellen, erhalte ich einen Fehler in der Zeile mit . Eine rote Linie wird unter list.length angezeigt, aber wenn ich es nicht unter eine Methode stelle, gibt es keine Fehler. Wie behebe ich das? Ich bin verpflichtet, eine Methode zu verwenden.Fehler Array-Ausgabe

public static void main(String[] args) 

{ 
    System.out.println("Sergio Borja, Class Meeting Time: Tue/Thu 1:30-2:50pm"); 
    Movie[] list = new Movie[6]; 
    list[0] = new Animated("Batman Begins", "Zack Snyder" , 2006, 4000000000.0, 4, 3000.0); 
    list[1] = new Animated("Batman v Superman", "Jack Smith", 2016, 250200.0, 3, 20000.0); 
    list[2] = new Documentary("The Lone Ranger", "Spike Lee", 2002, 2000000.0, 1000, 4000.0); 
    list[3] = new Documentary("Cowboys", "Bob lies", 1992, 5000000.0, 1050 , 2000.0); 
    list[4] = new Drama ("Karate Kid","Jackie Chan", 1998, 2000000000.0, 60000000.0, 15.25); 
    list[5] = new Drama ("The Amazing SpiderMan", "Bobby Smith", 2014, 150000000.0, 20000000.0, 14.50); 

} 
    public void printMovieInfo(Movie[] Movie) 
    { 
     for (int i =0; i < list.length; i++){ 
      System.out.printf("%s", list[i].toString()); 
    } 
} 
+0

Woher kommt die 'liste'? – JanLeeYu

+0

Ich habe mehrere Unterklassen gemacht und die Elternklasse ist Film – Arhuro

Antwort

0

printMovieInfo weiß nicht list. Ersetzen Sie es durch den richtigen Parameternamen, d. H. Movie (und benennen Sie es mit einem Kleinbuchstaben um, sobald es funktioniert).

+0

Ich muss meine Methode printMovieInfo nennen. Gibt es eine andere Art und Weise? – Arhuro

+0

Benenne die Methode nicht um, ändere 'Movie [] Movie' mit' Movie [] list'. – pyb

+0

Oh hey das hat wirklich funktioniert! Schätzen Sie es – Arhuro

1

Sie übergeben ein Array mit dem Namen Movie (das ist auch der Name des class), aber versuchen, ein Array mit dem Namen list zu verwenden. Ändern

public void printMovieInfo(Movie[] Movie) 

zu

public void printMovieInfo(Movie[] list) 
+0

Arbeitete perfekt! Danke – Arhuro

+0

schöner Fang! :-) – Alice

0

Ihre Liste Variable in Ihrem Hauptverfahren befindet, die nicht sichtbar auf Ihre printMovieInfo Methode. Verwenden Sie die Filmvariable, die Sie in Ihrem Argument haben. Fügen Sie außerdem den Aufruf printMovieInfo von Ihrem Hauptbenutzer hinzu.

public static void main(String[] args) 

{ 
    System.out.println("Sergio Borja, Class Meeting Time: Tue/Thu 1:30-2:50pm"); 
    Movie[] list = new Movie[6]; 
    list[0] = new Animated("Batman Begins", "Zack Snyder" , 2006, 4000000000.0, 4, 3000.0); 
    list[1] = new Animated("Batman v Superman", "Jack Smith", 2016, 250200.0, 3, 20000.0); 
    list[2] = new Documentary("The Lone Ranger", "Spike Lee", 2002, 2000000.0, 1000, 4000.0); 
    list[3] = new Documentary("Cowboys", "Bob lies", 1992, 5000000.0, 1050 , 2000.0); 
    list[4] = new Drama ("Karate Kid","Jackie Chan", 1998, 2000000000.0, 60000000.0, 15.25); 
    list[5] = new Drama ("The Amazing SpiderMan", "Bobby Smith", 2014, 150000000.0, 20000000.0, 14.50); 

    printMovieInfo(list); // <--- here is the call to print movie info 

} 

public static void printMovieInfo(Movie[] movie) 
{ 
     for (int i =0; i < movie.length; i++){ 
      System.out.printf("%s", movie[i].toString()); 
} 
+0

Hmm ich bekomme eine Fehlermeldung, dass ich meine Methode zu statisch ändern muss? – Arhuro

+0

ah richtig, Hauptmethode ist statisch und Sie müssen die printMovieInfo auch auf statisch ändern. Da die statische Methode nur andere Methoden aufrufen/aufrufen kann, die statisch sind. –