Sicher, man kann eine lokale Variable verwenden. Allerdings kann dann, abhängig von der Implementation von Getter und Setter, die Semantik eine ganz andere sein. Man stelle sich einmal vor, dass die Speicherseite unseres Objektes absichtlich geunmappt (
) wurde, mit der Absicht, in einem Exceptionhandler auf Zugriffe zu reagieren. Der Exceptionhandler wird dann einen Lesezugriff feststellen, auf den er mitunter nicht vorbereitet ist. Zugegebenermaßen ist dieses Beispiel etwas gestellt, da man bei solchen Aktionen kaum Objektinstanzen verwenden wird. Aber es kann bei dem genannten Workaround durchaus zu unerwarteten Komplikationen führen. Das Hauptargument dürfte aber wohl sein, dass zweimal unnötig Speicher kopiert wird.