Sie möchten vielleicht http://www.stroustrup.com/1995_Java_whitepaper.pdf lesen. Es enthält keine direkte Antwort auf diese Frage, aber es betont viel "Einfachheit". Pass durch Bezugnahme einiger Komplikationen hinzu:
- Sie Konzept des lokalen Stapelzeigers in Bytecode müssen, die es erheblich erschwert, wenn Sie 100% sicher
- lokale Stack-Variablen mit Bezug auf verschiedene Threads auslaufen könnten bleiben wollen, Das erfordert ein spezifisches Speichermodell-Verhalten für sie, wieder eine zusätzliche Komplikation. (und frühes Java ging es um einfache, nebenwirkungsfreie Zuweisungen, ohne komplexe Konzepte - wir wissen, wie dies mit Generika und Autoboxing ging) später ...)
All das, mit der Tatsache, dass Sie es trivial mit explizit mutierbarer Wrapper-Klasse (oder sogar Ein-Element-Array) emulieren können, hat es sich nicht lohnt, in frühen Versionen aufzunehmen. Danach ... wahrscheinlich nur Trägheit.
Für mich persönlich, würde eine Art einfache Multiple-Return-Anweisung (Tupel oder so ähnlich) viel mehr gut, dass Pass-by-Referenz, die in den meisten Fällen verwendet wird, nur um (und Sie am Ende mit dem nicht symmetrischen Fall, dass ein Wert normal zurückgegeben wird, und anderen durch "Ausgabe" -Variablen. Aber mit einfachen Wrapper-Klassen können Sie dasselbe auch expliziter (und ausführlicher, also Java Way (tm)) erreichen.
warum die downvotes? vor der Wahl erklären plz. – holyknight
Mögliches Duplikat von [Ist Java "pass-by-reference" oder "pass-by-value"?] (Http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass -by-value) –
Ich habe diese Frage schon gelesen und noch mehr, aber ich konnte immer noch keine Antwort auf meine Frage finden. – holyknight