2017-05-10 31 views
0

我需要獲得類<?擴展名單< AlarmRule >>實例。我怎麼能得到Class <?擴展名單<AlarmRule>> instatnce?

這是我的代碼:

public static BoundedMatcher<Object, List<AlarmRule>> setBind() { 
     Class<? extends List<AlarmRule>> clazz = null; // I need to give clazz a value,but i don't know how. 
     return new BoundedMatcher<Object, List<AlarmRule>>(clazz) { 
      @Override 
      public void describeTo(Description description) { 
       description.appendText("with item content: "); 
      } 

      @Override 
      protected boolean matchesSafely(List<AlarmRule> list) { 
      return list.stream().anyMatch(alarmRule -> test_reminder_corn.equals(alarmRule.cron)); 
      } 
     }; 
    } 

感謝您的幫助!

+0

你可以更具體的請 – AJay

+0

無級可擴展列表,因爲列表是一個抽象類 –

+0

@AJay好吧,我有編輯它。你能理解這個嗎? – Cyrus

回答

1

寫這樣

public static BoundedMatcher<Object, List> setBind() { 
    return new BoundedMatcher<Object, List>(List.class) { 
     @Override 
     public void describeTo(Description description) { 
      description.appendText("with item content: "); 
     } 

     @Override 
     protected boolean matchesSafely(List list) { 
      // convert every object in list to AlarmRule 
      return false; 
     } 
    }; 
} 
1

在你的情況下,你需要在構造函數中通過List.class

然而,因爲Java類型擦除,任何List可以傳遞給你的匹配,所以你需要添加額外的代碼,以確保您的列表實際上包含AlarmRule對象或你會得到一個ClassCastException在運行時。

相關問題