Недавно я работал над предупреждениями FindBugs о раскрытии внутреннего состояния, то есть когда вместо возврата копии массива возвращалась ссылка на массив. Я создал несколько шаблонов, чтобы упростить преобразование этого кода.
Какой из них вы создали для поддержки защитного программирования и хотите поделиться с толпой SO?
Шаблоны, которые я создал до сих пор (как примеры):
Чтобы создать копию массива для возврата из метода:
final ${type}[] ${result} = new ${type}[ ${array}.length ];
System.arraycopy( ${array} , 0 , ${result} , 0 , ${array}.length );
Чтобы клонировать объект:
(${o}!= null?(${type})${o}.clone():null)