2017-04-25 25 views
-3

現在、私はJavaを学習しています。Collections.sort(リスト)の適切なメソッドが見つかりません

java.utils.Collectionsに問題がありますが、NetBeansでこのエラーが発生します。

no suitable method found for sort(List<MovieSession>) 
    method Collections.<T#1>sort(List<T#1>) is not applicable 
     (inference variable T#1 has incompatible bounds 
     equality constraints: MovieSession 
     upper bounds: Comparable<? super T#1>) 
    method Collections.<T#2>sort(List<T#2>,Comparator<? super T#2>) is not applicable 
     (cannot infer type-variable(s) T#2 
     (actual and formal argument lists differ in length)) 
    where T#1,T#2 are type-variables: 
    T#1 extends Comparable<? super T#1> declared in method <T#1>sort(List<T#1>) 
    T#2 extends Object declared in method <T#2>sort(List<T#2>,Comparator<? super T#2> 

は、私は以下のクラスMovieSession

public class MovieSession implements Comparable<MovieSession> { 
    @Override 
    public int compareTo(MovieSession currentMovieSession) { 

    } 
} 

そして、メインメソッドに持って

public static void main(String[] args) { 

    List<MovieSession> movieSessions = new ArrayList<MovieSession>(); 

    MovieSession cinema1 = new MovieSession("XYZ", 'R', new Time(10, 10, 10)); 
    MovieSession cinema2 = new MovieSession("ABC", 'G', new Time(11, 00, 00)); 

    movieSessions.add(cinema1); 
    movieSessions.add(cinema2); 
    Collections.sort(movieSessions); 
    System.out.print(movieSessions);  
} 

ここで間違って何が起こっているかわかりません。

+0

なぜ生の型をどこで使用していますか? – user2357112

+0

ああ、待って、ちょうどあなたがコードフォーマットを正しくしなかったので、彼らは生のように見えます。 – user2357112

+0

編集のおかげでいつも私と一緒に起こる – WonderGal

答えて

0

私は、あなたのコードをコピーした行方不明のビットを追加し、それがエラーなし

主に実行されます。

import java.sql.Time; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 

public class TestBed { 

public static void main(String[] args) { 
     List<MovieSession> movieSessions = new ArrayList<MovieSession>(); 

     MovieSession session1 = new MovieSession("Logan", 'R', new Time(10, 10, 10)); 
     MovieSession session2 = new MovieSession("Baby Boss", 'G', new Time(11, 00, 00)); 
     MovieSession session3 = new MovieSession("Guardians Of The Galaxy ", 'M', new Time(9, 30, 00)); 
     MovieSession session4 = new MovieSession("Moana", 'G', new Time(13, 45, 00)); 


     movieSessions.add(session1); 
     movieSessions.add(session2); 
     movieSessions.add(session3); 
     movieSessions.add(session4); 

     Collections.sort(movieSessions); 
     System.out.println(movieSessions); 
    } 

} 

MovieSession:

import java.sql.Time; 

public class MovieSession implements Comparable<MovieSession> { 

    private Time sessionTime; 
    private String movieName; 
    private char rating; 

    public MovieSession(String mn, char rtg, Time tm){ 
     this.sessionTime = tm; 
     this.movieName = mn; 
     this.rating = rtg; 
    } 

    @Override 
    public int compareTo(MovieSession currentMovieSession) { 
     if (getSessionTime().compareTo(currentMovieSession.getSessionTime()) > 0) { 
      return 1; 
     } else if (getSessionTime().compareTo(currentMovieSession.getSessionTime()) < 0) { 
      return -1; 
     } else if (getSessionTime().compareTo(currentMovieSession.getSessionTime()) == 0) { 
      if (getMovieName().compareTo(currentMovieSession.getMovieName()) > 0) { 
       return 1; 
      } else if (getMovieName().compareTo(currentMovieSession.getMovieName()) < 0) { 
       return -1; 
      } 
     } 
     return 0; 
    } 

    public String toString(){ 
     return String.format("%s - %s - %s", movieName, rating, sessionTime); 
    } 


    public Time getSessionTime() { 
     return sessionTime; 
    } 


    public void setSessionTime(Time sessionTime) { 
     this.sessionTime = sessionTime; 
    } 


    public String getMovieName() { 
     return movieName; 
    } 


    public void setMovieName(String movieName) { 
     this.movieName = movieName; 
    } 

} 

出力:銀河の [保護者を - M - 09:30:00、Logan - R - 10:10:10、Baby Boss - G - 11:00:00、Moana - G - 13:45:00]

+0

ヘルプ@DevonSutherlandのおかげです。しかし、私はまだ同じエラーがあります。私の主な方法はMovieSessionの中にあるからですか? – WonderGal

+0

私は先に進み、それを試しましたが、私はあなたのエラーを再現できません、申し訳ありません。あなたは輸入品と実際の例外を掲載できますか? –

+0

なぜ、 'return getMovieName()。compareTo(currentMovieSession.getMovieName());'を二次比較に使用しないのですか? –

関連する問題