2017-05-10 29 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在运行时。

相关问题