You cannot call cross-object `get`. Take a look at the `FieldReference` [class](https://github.com/bluewolf-beyond/selector/blob/master/src/classes/FieldReference.cls). It's open source, so you can just copy it into your org. Then you could do: for (String invoiceField : invoiceFields) system.debug(FieldReference.build(invoiceField).getFrom(opportunity);