Simple idea, drill-down call-chain is easily missed
The calls have to 'link-up' ... that is not a terminology that is best. Call chain is a better word, it is like links in a chain:
Code:
class A {
class B = new B();
ListItem getBrandProd(){
B.ListItem getBrandProd();
}
class B {
ListItem getBrandProd(){
return C.getBrandProd();
}
The machine is not passing a copy of the ArrayList, it passes a copy of the finder information that the machine uses to find the ArrayList, so we are getting the actual item from the ArrayList in class C