В отсутствие стандартизации значений в Java я настоятельно рекомендую избегать любых хитроумных схем отражения / генерации кода.
Если вы можете, переход на неизменяемые типы устраняет необходимость в копировании.
Кроме этого, просто напишите код аккуратно. Если коллекций много, написание map
методов поможет избежать ошибки в Stream
s (и будет быстрее).