title: Groovy ArrayList getting confused for a String
body: <p>I am seeing some confusing behavior from this code. </p>
  
  <pre><code>def fileArrayMeta  = newFile.readLines()
  def file3 = fileArrayMeta.collect{ line -&gt; line.split("\\s+") }
  println file3[0]
  println file3[0].getClass()
  </code></pre>
  
  <p>The expected result of this operation should be.</p>
  
  <pre><code>=&gt; [, NOTE, *ENTRY, STATEMENT, *.]
  =&gt; class java.util.ArrayList
  </code></pre>
  
  <p>The actual result of this operation is.</p>
  
  <pre><code>=&gt; [, NOTE, *ENTRY, STATEMENT, *.]
  =&gt; class [Ljava.lang.String;
  </code></pre>
  
  <p>Why is this happening?</p>
  
  <pre><code>println file3[0].removeAll("", null)
  </code></pre>
  
  <p>Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: [Ljava.lang.String;.removeAll() is applicable for argument types: 
  (java.lang.String, null) values: [, null]</p>
  
  <p>I assume this should work too, why not?</p>
  
  <pre><code>def clean4 = clean3.each{it.collect{ it != "" &amp;&amp; it != null }}
      println clean4[0]
  </code></pre>