I have an object - Mat - of class Matrix which has an arrayList of Integers. Now I need to pass Mat to a method called getAdjugateMatrix which will use the values of Mat's ArrayList and return me another Matrix object, but I don't want adjugateMatrix to change Mat at all. How can I achieve that? Will it work if I set Mat to final, do Matrix temp = mat, and then pass temp to getAdjugateMatrix? TIA