Les Collections de sorte de ne pas être acceptées par Eclipse

    import java.io.BufferedReader;
    import java.util.Collections;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Comparator;
    import java.util.Date;
    import java.util.List;
    import com.javaranch.common.TextFileIn;

    public class SortNames 
    {
        public static class CelebrityNamesFile
        {
            public String firstName;
            public String lastName;

            public static class CompareLastName implements Comparator< CelebrityNamesFile >
            {
                @Override
                public int compare( CelebrityNamesFile o1,  CelebrityNamesFile o2 )
                {
                    return o2.lastName.compareTo( o1.lastName );
                }
            }

        public static void main( String[ ] args ) throws IOException
        {

            ArrayList< CelebrityNamesFile > myCelebrityList;
            myCelebrityList = new ArrayList< CelebrityNamesFile >();

            TextFileIn celebrityNamesFile = new TextFileIn( "celebrityNamesFile.txt" );
            boolean doneReadingCelebrityNames = false;
            while ( ! doneReadingCelebrityNames )
            {
                 String oneName = celebrityNamesFile.readLine();
                 if ( oneName == null )
                 {
                     doneReadingCelebrityNames = true;
                 }

$
Eclipse n'aime pas les ajouter instruction qui suit, à savoir: La méthode add (SortNames.CelebrityNamesFile) dans le type ArrayList(SortNames.CelebrityNamesFile)n'est pas applicable pour les arguments (String)

                 else
                 {
                     myCelebrityList.add( oneName );
                 }
            }
            celebrityNamesFile.close();

$
Et puis il n'aime pas mon sorte de déclaration, à savoir:
Lié incompatibilité: Le générique de la méthode de tri(Liste T) de type de Collections n'est pas applicable pour les arguments (ArrayList (SortNames.CelebrityNamesFile)). Le type inféré SortNames.CelebrityNamesFile n'est pas un substitut valable pour la délimitée paramètre (T extends Comparable(? super T))

            Collections.sort( myCelebrityList );
            System.out.println( myCelebrityList );

            Collections.sort( myCelebrityList, new CelebrityNamesFile.CompareLastName() );
            System.out.println( myCelebrityList );
}
}

}

Ce que je fais mal? J'ai lu beaucoup de posts ici, j'ai lu les Java docs concernant comparateur, avoir lu Java tutoriels concernant comparateur. La tête la Première, Java, Ivor Horton début de Java 7. Toujours désemparés.

Le but du programme est de lire les noms à partir d'un fichier txt, les ajouter à une liste de tableaux, d'imprimer la liste de tableaux dans son ordre naturel, trier la liste de tableaux par nom, imprimer la liste de nouveau.

Au lieu d'écrire de la prose commentaire interrompre votre code, vous devez utiliser un seul bloc de correctement code que vous pouvez copier-collé dans un IDE, et de souligner les lignes importantes avec des commentaires. (Aussi, la chute de la imports, ils ont juste obecure le code). Si vous avez besoin de plus de la prose, reportez-vous aux lignes vous l'avez souligné précédemment.

OriginalL'auteur Armando Moncada | 2012-07-18