How can i copy a ArrayList containing objects with ArrayList members. Also it might be possible, that the members of the objects in the list also containing again ArrayList members, and so on. So is there a generic way to copy list of objects regardless of their members? 
Implementing the Clone Interface for all involved objects seems to be a bad idea, since I read that its broken. 
I created a small SSCCE to exemplify my problem:
class Foobar {
    public List<String> listMember;
    public String       primitiveMember;
    public Foobar() {
        listMember = new ArrayList<String>(Arrays.asList("a", "b", "c"));
        primitiveMember = "testABC";
    }
}
// Create list of Foobar
List<Foobar> foobars = new ArrayList<Foobar>();
foobars.add(new Foobar());
// Copy list of Foobar
List<Foobar> foobarsCopy = new ArrayList<Foobar>();
foobarsCopy.add(null);
Collections.copy(foobarsCopy, foobars);
// Modify source list
foobars.get(0).listMember.add("-1-");
// Output of references
System.out.println("Sourcelist has size of: " + foobars.get(0).listMember.size());
System.out.println("Destinationlist has size of: " + foobarsCopy.get(0).listMember.size());
System.out.println("Function 'Collections.copy(...) does not copy list members of members?: " + (foobars.get(0).listMember.size() == foobarsCopy.get(0).listMember.size()) + " - References: " + foobars.get(0).listMember.hashCode() + " vs " + foobarsCopy.get(0).listMember.hashCode());
 
     
    