2016-04-10 7 views
0

Dies ist mein Code:Array erforderlich, aber Movie2 gefunden

import java.util.*; 
/** 
    * Write a description of class Movie2 here. 
    * 
     * @author (Austin J) 
     * @version (4/9/2016) 
      */ 
public class Movie2 
{ 
public String title, studio; 
public int year; 

public Movie2 (String title, int year, String studio) 
{ 
    this.title = title; 
    this.year = year; 
    this.studio = studio; 
    } 

    public String toString() 
    { 
     System.out.println(title + ", " + year + ", " + studio); 
     return""; 
    } 

    public String getTitle() 
    { 
     return title; 
    } 
    public int getYear() 
    { 
     return year; 
    } 
    public String getStudio() 
    { 
     return studio; 
    } 

    public void sortTitles(Movie2 myMovies, int choice) 
    { 
    if (choice == 1) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      Movie2 myMovieTemp = myMovies[i]; 
      int insertIndex = 0; 
      int k = i; 

      while (k > 0 && insertIndex == 0) 
      { 
       if (myMovies[i].getTitle().compareTo(myMovies[i - 1].getTitle() > (myMovies[i - 1].getTitel()))) 
       { 
        insertIndex = k; 
       } 
       else 
       { 
        myMovies[k] = myMovies[k - 1]; 
       } 
       k--; 
      } 

      myMovies[insertIndex] = next; 
     } 
    } 

    else if(choice == 2) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      Movie2 myMoviesTemp = myMovies[i]; 
      int insertIndex = 0; 
      int k = i; 
      while (k > 0 && insertIndex == 0) 
      { 
       if (myMoviesTemp.getTitle().compareTo(myMovies[k - 1].getTitle()) < 0) 
       { 
        insertIndex = k; 
       } 
       else 
       { 
        myMovies[k] = myMovies [k - 1]; 
       } 
       myMovies[insertIndex] = myMoviesTemp; 
      } 
     } 
    } 
    else 
    { 
     System.out.println("Invalid parameter"); 
    } 
    return myMovies; 
} 
} 

Der Fehler in Zeile auftritt 45.

"Array erforderlich, aber Movie2 gefunden".

Ich habe absolut keine Ahnung, was das Problem ist, jede Hilfe wäre willkommen.

+0

Sie die Frage sagen konnte, so konnten wir das Programm macht verstehen, was ohne tatsächlich das ganze Programm zu lesen? – BlueSlimShady

Antwort

0

Linie 45:

Movie2 myMovieTemp = myMovies[i]; 

Die Variable myMovies ist Movie2 eingeben. Was erwarten Sie dann, wenn Sie versuchen, den Index [i] eines Objekts Movie2 zu referenzieren?

Vielleicht wollten Sie die myMovies Eigenschaft der sortTitles-Methode ein Array sein?

0

myMovies ist kein Array, es ist eine Variable vom Typ Movie2. Sie versuchen, darauf zuzugreifen, als wäre es ein Array.
Es scheint, als ob Sie ein Array von Movie2 an Ihre sortTitles Funktion übergeben möchten. So ist es zu verwenden, wie ein Array [] in der Methodensignatur verwenden:

public void sortTitles(Movie2[] myMovies, int choice) 
0

Entweder Sie haben diese Linie ändern

public void sortTitles(Movie2 myMovies, int choice) 

in

public void sortTitles(Movie2[] myMovies, int choice) 

ODER Sie müssen sich ändern dies

Movie2 myMovieTemp = myMovies[i]; 

in

Movie2 myMovieTemp = myMovies; 
+0

Danke! Das hat mein Problem gelöst. –

+0

@AustinJohanningsmeier Ich schlage vor, Sie die Angewohnheit von [Accepting] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) Antworten, wenn das Problem gelöst ist. –

0

Geben ein Array von Movie2 das Verfahren sortTitles. ändern Sortiermethode sortTitles die folgende Signatur haben:

public void sortTitles(Movie2[] myMovies, int choice){ 
    //Rest goes here 
} 
Verwandte Themen