我被分配了一个任务,需要创建一个带有所有常规功能的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
根据用户在控制台输入的内容,Main调用相关方法。
例如: Collections.sort(myTracks); myTracks是MP3_Tracks的集合,目前mt MP3_Track覆盖了compareTo()方法,但是你可以看到它只按artistName排序!!!我希望用户可以选择如何排序曲目等。我想也许我可以在MP3_Track中有一个数据成员来标记要实现的排序类型,然后在compareTo方法中进行一些if语句以返回所需结果。这种解决方案似乎有些繁琐,我想到的另一种可能性是实现自定义接口!!!
有什么关于巧妙解决的建议吗?非常感谢您的帮助,顺便说一下,这个网站很棒。