title: Possibilities of creating immutable class in Java
body: <p>what are possibilities of creating immutable bean in Java. For example I have immutable class <code>Person</code>. What's a good way to create instance and fill private fields. Public constructor doesn't seems good to me because of a lot input parameters will occure as class will grow in rest of application. Thank you for any suggestions.</p>
  
  <pre><code>public class Person {
  
  private String firstName;
  private String lastName;
  private List&lt;Address&gt; addresses;
  private List&lt;Phone&gt; phones;
  
  public List&lt;Address&gt; getAddresses() {
      return Collections.unmodifiableList(addresses);
  }
  
  public String getFirstName() {
      return firstName;
  }
  
  public String getLastName() {
      return lastName;
  }
  
  public List&lt;Phone&gt; getPhones() {
      return Collections.unmodifiableList(phones);
  }
  }
  </code></pre>
  
  <p><strong>EDIT</strong>: Specify question more precisely.</p>