title: Are Iterables.filter and Collections2.filter lazy executed?
body: <p>I try to filter all elements of type <code>AddReport</code></p>
  
  <p>but when putting a breakpoint in the Predicate body, I see the code there is not executed.</p>
  
  <p>Is it lazy? I see all kind of sub-classes. </p>
  
  <p>Not just <code>AddReport</code></p>
  
  <pre><code>    Iterable&lt;BaseClass&gt; filtered =
              Iterables.filter(myList,
                      new Predicate&lt;BaseClass&gt;() {
                          @Override
                          public boolean apply(@Nullable BaseClass input) {
                              AddReport addReport = (AddReport) input;
                              return ((addReport != null) &amp;&amp; addReport.description.equals(messageBody));
                          }
                      });
  
      Collection&lt;BaseClass&gt; filtered2
              = Collections2.filter(myList,
              new Predicate&lt;BaseClass&gt;() {
                  @Override
                  public boolean apply(@Nullable BaseClass input) {
                      AddReport addReport = (AddReport) input;
                      return ((addReport != null) &amp;&amp; addReport.description.equals(messageBody));
                  }
              });
  </code></pre>