Convenience-Methoden
BeanShell bietet eine überschaubare Anzahl von Convenience-Methoden (zu deutsch: nützliche Hilfs-Funktionen), die beim Skripting und Debugging unterstützen können.
print()
Die Methode print(Object) erzeugt eine String-Ausgabe eines beliebigen Objekts. Beispielhafter Aufruf aus der BeanShell-Konsole:
bsh % e = context.getElement();
bsh % print(e);
<SECTION editor="833847" id="835469" lastchange="1168967507480" name="Text/Bild" notdisplayed="" position="2" revision="1739" sectiontemplate="10">
<LANG language="DE"/>
</SECTION>
show()
BeanShell bietet die Möglichkeit, die Rückgabe-Werte von Methoden bei jedem Aufruf auszugeben. Diese Option ist standardmäßig nicht aktiviert. Mit dem Aufruf von show() wird diese Ausgabe eingeschaltet. Beispiel:
bsh % show();
bsh % e = context.getElement();
<<SECTION editor="833847" id="835469" lastchange="1168967507480" name="Text/Bild" notdisplayed="" position="2" revision="1739" sectiontemplate="10">
<LANG language="DE"/>
</SECTION>
>
Ein erneuter Aufruf von show() beendet die Ausgabe wieder.
getMethods()
Manchmal ist es hilfreich einen Überblick über die für ein Objekt verfügbaren Methoden zu bekommen. Über den Klassennamen eines Objekts lässt sich mit getMethods() eine Liste aller Methoden dieser Klasse anzeigen (auch die geerbten Methoden).
Beispiel:
bsh % print(e.getClass().getMethods());
java.lang.reflect.Method []: {
public void de.espirit.firstspirit.store.access.pagestore.SectionImpl.appendChildBefore(de.espirit.firstspirit.access.store.StoreElement,de.espirit.firstspirit.access.store.StoreElement),
public java.util.Set de.espirit.firstspirit.store.access.pagestore.SectionImpl.getReferences() throws java.io.IOException,
public final de.espirit.firstspirit.access.store.templatestore.Template de.espirit.firstspirit.store.access.pagestore.SectionImpl.getTemplate(),
public void de.espirit.firstspirit.store.access.pagestore.SectionImpl.clearCachedData(),
...
public final void java.lang.Object.wait() java.lang.InterruptedException,
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException,
public final native void java.lang.Object.notify(),
public final native void java.lang.Object.notifyAll(),
}
javap()
Die Methode javap(Object) zeigt eine Übersicht über alle Methoden und Felder eines Objekts, die direkt in der konkreten Klasse implementiert oder überschrieben werden.