title: Java8 Lambda expression to iterate over enum values and initialize final member
body: <p>I have a static enum like this:</p>
  
  <pre><code>private static enum standardAttributes {
      id, gender, firstname, lastname, mail, mobile
  }
  </code></pre>
  
  <p>I need all the values as String. Therefore I have a method like this:</p>
  
  <pre><code>public static List&lt;String&gt; getStandardRecipientsAttributes() {
      List&lt;String&gt; standardAttributesList = new ArrayList&lt;String&gt;();
      for (standardAttributes s : standardAttributes.values())
          standardAttributesList.add(s.toString());
  
      return standardAttributesList;
  }
  </code></pre>
  
  <p>There is no need to create the same List everytime this method is called. So I created a static member:</p>
  
  <pre><code>static final List&lt;String&gt; standardAttributesList;
  static {
      standardAttributesList = getStandardRecipientsAttributes();
  }
  </code></pre>
  
  <p>This is all fine, but I wonder if there is a fancy Lambda expression to replace the method. Something like this:</p>
  
  <pre><code>Arrays.asList(standardAttributes.values()).forEach((attribute) -&gt; standardAttributesList.add(attribute.toString()));
  </code></pre>
  
  <p>Two questions:</p>
  
  <ol>
  <li>Can I avoid the Arrays.asList wrapper?</li>
  <li>How can I handle the compiler error: <em>The blank final field standardAttributesList may not have been initialized</em>?</li>
  </ol>