通常の機能をすべて備えた MP3 カタログを作成するタスクが与えられました。MP3_Track、MP3_UserInterface、および Main クラスがあります。
public class MP3_Track implements Comparable<MP3_Track>{
private int trackNo;
private String artistName;
private String albumName;
private String trackLength;
MP3_Track(int no, String artist, String album, String length){
this.trackNo = no;
this.artistName = artist;
this.albumName = album;
this.trackLength = length;
// setters & getters
@Override
public String toString(){
return (" Track Number : " + trackNo + "\n Artist Name : " + artistName + "\n Album Name : " + albumName +"\n Track Length : " + trackLength);
}
@Override
public int compareTo(MP3_Track aTrack){
int result;
try{
result = artistName.compareTo(aTrack.artistName);
}
catch(UnsupportedOperationException e){
throw new UnsupportedOperationException("Not supported here.");
}
return result;
}
}
私のメインクラスには以下が含まれます:
static void deleteTrack()
static MP3_Track addTrack()
static void moveTrack()
static void exploreTracks()...etc
ユーザーがコンソールで入力した内容に応じて、関連するメソッドのメイン呼び出し。
など: Collections.sort(myTracks); myTracks は MP3_Tracks のコレクションであり、現時点では mt MP3_Track が compareTo() メソッドをオーバーライドしますが、ご覧のとおり、artistName でのみ並べ替えます!!! トラックの並べ替え方法などをユーザーが選択できるようにしたいのですが、MP3_Track にデータ メンバーを配置して、実装する並べ替えの種類にフラグを付けてから、compareTo メソッドにある場合に必要な結果を返すことができるのではないかと考えました。このソリューションはやや面倒に思えますが、私が考えた別の可能性は、おそらくカスタムインターフェイスを実装することでした!!!
巧妙な回避策に関する提案は大歓迎です???
よろしくお願いします、素晴らしいサイトところで..