title: Assert that collection "Contains at least one non-null element"
body: <p>I want to verify that a collection contains at least one non-null element. I have tried <code>is(not(empty()))</code>, however this passes in the test below.</p>
  
  <pre><code>import org.junit.Test;
  
  import java.util.ArrayList;
  import java.util.Collection;
  
  import static org.hamcrest.CoreMatchers.is;
  import static org.hamcrest.MatcherAssert.assertThat;
  import static org.hamcrest.Matchers.empty;
  import static org.hamcrest.Matchers.not;
  
  public class SandBoxTest {
      @Test
      public void shouldTestThis() {
          Collection&lt;Integer&gt; collection = new ArrayList&lt;Integer&gt;();
          collection.add(null);
  
          assertThat(collection, is(not(empty())));
      }
  }
  </code></pre>
  
  <p>Is there an elegant/simple way to do this?</p>
  
  <p><strong>Things That Don't Work</strong> </p>
  
  <pre><code>@Test
  public void should(){
      Collection&lt;String&gt; collection = new ArrayList();
      collection.add("gfas");
      collection.add("asda");
      assertThat(collection, contains(notNullValue()));
  }
  
  java.lang.AssertionError: 
  Expected: iterable containing [not null]
       but: Not matched: "asda"
  at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
  </code></pre>