So I just noticed something. You can call setEntries with a modifiable map, build the map, and then modify the map with your preexisting reference to the modifiable view. If you want to use unmodifiable for this instead of immutable, you will need to ensure somehow via scoping and access rules that no references to the modifiable map escape after calling build().