Ich arbeite an einer Analyse für Java-Programme, die Nebeneffekt Informationen über Methodenaufrufe erfordert. Für Standardbibliotheksklassen möchte ich eine Liste von Methoden mit schreibgeschützten Parametern erstellen. Das heißt, Methoden, die ihre Argumente oder irgendetwas, das von ihren Argumenten erreichbar ist, nicht modifizieren. Ich kann viel von den Javadocs ableiten, aber das wird Zeit brauchen.Nebenwirkungen freie Methoden in der Java-Standardbibliothek
Kann jemand eine einfachere Referenz oder Methode vorschlagen, um zu bestimmen, ob Standardmethodenaufrufe ihre Argumente ändern? Ist das Lesen der einzelnen javadoc-Einträge wirklich der beste Weg?
Danke!
EDIT: Ein Bonus wäre die Identifizierung von Methoden, die keine Nebenwirkungen auf das Objekt haben. Zum Beispiel würde stack.pop() während stack.size() nicht.
Ich wäre daran interessiert, Ihre Lösung zu sehen. Sie können davon ausgehen, dass alle Methoden, die unveränderliche Typen verwenden, nebenwirkungsfrei sind. Nicht sicher, was Sie außer Javadocs und Code noch können. –
@SB: Denken Sie daran, dass "String" unveränderlich ist, aber Klassen, die 'CharSequence 'implementieren, können oder auch nicht sein. – Powerlord