2017-02-12 33 views
1

我的三個小類是談話節目,歌曲和商業廣播課。我只在這裏顯示脫口秀。例如,當我爲子類別輸入s,p或m時。當我只希望打印一個子類別時,它會打印該子類的所有內容。如何使用instanceof函數在繼承中打印某個類別?

樣本數據如下。

1000,S,The Newest Star,Space,51:20,T2.mp3 
1001,P,Interview With George,Politics,15:00,george.mp3 
1002,P,Crooks in Politics,Politics,21:35,crooks.mp3 
1010,M,Cooking For Vegetarians,Food,5:00,vege2.mp3 
1222,S,Where Is The Sun,Larries,23:33,larscience.mp3 

但如果我選擇「P」爲子類別脫口秀它應該只印這兩個,如下圖所示。

1001,P,Interview With George,Politics,15:00,george.mp3 
1002,P,Crooks in Politics,Politics,21:35,crooks.mp3 

這是我的代碼

private void searchCategoryToPrint() 
    { 
     String inputCategory = JOptionPane.showInputDialog("Choose from Radio Categories: Talk Show, Song, or Commercial\n" + 
                  "and enter the chosen category"); 
     String subCategory = JOptionPane.showInputDialog("Talk Show: S Science, P Politics, and M Miscellaneous\n"); 
     if("talk show".equalsIgnoreCase(inputCategory)) 
     { 
       for(Radio radioShows : radioList) 
       { 
        if("SPM".contains(subCategory.toUpperCase().substring(0)) && radioShows instanceof TalkShow) 
        { 
         System.out.println(radioShows.formatForFile()); 
        } 
       } 
     } 
+0

「Radio」的代碼是什麼?它的領域是什麼?有沒有辦法從它的子類別?然後,你應該改變你的'if'來比較'subCategory'和'radioShows.getSubcategory()'或者你有什麼。 – JChrist

+0

我試圖通過使用該類別來做到這一點。雖然這些是我的無線電課的領域,但它是用於收音機的。是。字段:id,類別,標題,主持人,播放時間和audiofile。 –

+0

我會打破如果(「SPM」....)兩個if(),直到我得到它的權利。反轉字符串比較,讓我知道 – efekctive

回答

1

你應該改變你的if條件檢查廣播節目具有相同的子類別作爲一個從你的對話框中選擇的部分:

if(radioShows.getCategory().equalsIgnoreCase(subCategory.substring(0)) && radioShows instanceof TalkShow) { 
    System.out.println(radioShows.formatForFile()); 
} 
+1

感謝您的幫助,它的工作:) –