Передача ArrayList только как значение, а не как ссылка

Проще говоря, у меня есть метод с параметром ArrayList. В методе я изменяю содержимое ArrayList для целей, относящихся только к тому, что возвращается методом. Поэтому я не хочу, чтобы ArrayList, который передается в качестве параметра, затрагивался вообще (т.е. не передавался в качестве ссылки).

Все, что я пробовал, не дало желаемого эффекта. Что мне нужно сделать, чтобы я мог использовать копию ArrayList только внутри метода, но не мог ли он изменить фактическую переменную?