Ah, you didn't say the the children are used by different threads, nor that the map is modified during runtime.

You could still pass a synchronized container (e.g. wrapper around the map) but option 1 (explicitly typed member) looks good as well.

Cheers,
_