Como passar ArrayList <CustomeObject> de uma atividade para outra? [duplicado]

Esta pergunta já tem uma resposta aqui:

Passando arraylist de objetos entre atividades 5 respostas

Quero enviar o seguinte ArrayList de uma atividade para outra, por favor, ajude.

ContactBean m_objUserDetails = new ContactBean();
ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>(); 

Estou enviando a lista de matrizes acima depois de adicionar dados à seguinte

  Intent i = new Intent(this,DisplayContact.class);
  i.putExtra("Contact_list", ContactLis);
  startActivity(i);

Mas estou tendo problemas ao recuperá-lo.

ArrayList<ContactBean> l1 = new ArrayList<ContactBean>();
Bundle wrapedReceivedList = getIntent().getExtras();
l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list");

Neste ponto, estou recebendo este erro:

Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean>

Minha classe ContactBean implementa Serializable, por favor, diga também por que precisamos implementar a interface serializável.

questionAnswers(4)

yourAnswerToTheQuestion