Wie rufe ich mittels String-Inhalts eine Methode auf?

theuserbl

Bekanntes Mitglied
Wie rufe ich mittels String-Inhalts eine Methode auf?

Was ich damit meine ist folgendes:
Angenommen ich habe eine statische Methode meinpackage.MeineKlasse.meineMethode()
Nun habe ich des weiteren einen String in dem steht "meinpackage/MeineKlasse.meineMethode". Wie kann ich nun mittels dieses Strings meine Methode aufrufen?

Eine Möglichkeit wäre
Code:
if (myString.equals("meinpackage/MeineKlasse.meineMethode") {
  meinpackage.MeineKlasse.meineMethode();
}

Aber das hat zwei Nachteile:
1. müßte ich für jede Methode soetwas schreiben
2. möchte ich auch mir vorher nicht bekannte Methoden über einen String aufrufen können.

Weiß einer wie das geht? Mittels Reflections oder so?
 
Danke an XHelp und nrg.
Werde ich mir mal durchlesen. 🙂

Und @ XHelp:
Dabei solltest du dich ernsthaft Fragen, ob du es wirklich brauchst. Meistens kann man es auch sinnvoll lösen. Also vllt fürs erste über dein Design nachdenken

Ich möchte eine Vorschauansicht von Jabaco-Forms haben.
Die sehen wie dieses hier aus:
Form1.jsrc - jabacoframework - Project Hosting on Google Code

Der entscheidende Teil:
[XML]<Object Type="VB/TabStrip">
<Param Name="TabOrientation" Value="fmTabOrientationTop"/>
<Param Name="FontName" Value="Arial"/>
<Param Name="FontBold" Value="False"/>
<Param Name="FontItalic" Value="False"/>
<Param Name="FontSize" Value="9"/>
<Param Name="BackColor" Value="-2147483633"/>
<Param Name="ForeColor" Value="-2147483630"/>
<Param Name="Width" Value="945"/>
<Param Name="Height" Value="737"/>
<Param Name="Left" Value="8"/>
<Param Name="Top" Value="48"/>
<Param Name="ToolTip" Value=""/>
<Param Name="Enabled" Value="True"/>
<Param Name="Visible" Value="True"/>
<Param Name="Tag" Value=""/>
<Param Name="MousePointer" Value="vbDefault"/>
<Param Name="MouseIcon" Value="Nothing"/>
<Param Name="CanGetFocus" Value="True"/>
<Param Name="(Name)" Value="TabStrip1"/>
<Param Name="Index" Value=""/>
</Object>
<Object Type="VB/CommandButton">
<Param Name="Caption" Value="Test Dialog"/>
<Param Name="Picture" Value="Nothing"/>
<Param Name="RolloverPicture" Value="Nothing"/>
<Param Name="PicturePosition" Value="fmPicturePositionLeftCenter"/>
<Param Name="FontName" Value="Arial"/>
<Param Name="FontBold" Value="False"/>
<Param Name="FontItalic" Value="False"/>
<Param Name="FontSize" Value="9"/>
<Param Name="BackColor" Value="-2147483633"/>
<Param Name="ForeColor" Value="-2147483630"/>
<Param Name="Width" Value="121"/>
<Param Name="Height" Value="25"/>
<Param Name="Left" Value="8"/>
<Param Name="Top" Value="16"/>
<Param Name="ToolTip" Value=""/>
<Param Name="Enabled" Value="True"/>
<Param Name="Visible" Value="True"/>
<Param Name="Tag" Value=""/>
<Param Name="MousePointer" Value="vbDefault"/>
<Param Name="MouseIcon" Value="Nothing"/>
<Param Name="CanGetFocus" Value="True"/>
<Param Name="(Name)" Value="cmdTestDialog"/>
<Param Name="Index" Value=""/>
</Object>
<Object Type="VB/CommandButton">
<Param Name="Caption" Value="Test MDI"/>
<Param Name="Picture" Value="Nothing"/>
<Param Name="RolloverPicture" Value="Nothing"/>
<Param Name="PicturePosition" Value="fmPicturePositionLeftCenter"/>
<Param Name="FontName" Value="Arial"/>
<Param Name="FontBold" Value="False"/>
<Param Name="FontItalic" Value="False"/>
<Param Name="FontSize" Value="9"/>
<Param Name="BackColor" Value="-2147483633"/>
<Param Name="ForeColor" Value="-2147483630"/>
<Param Name="Width" Value="121"/>
<Param Name="Height" Value="25"/>
<Param Name="Left" Value="136"/>
<Param Name="Top" Value="16"/>
<Param Name="ToolTip" Value=""/>
<Param Name="Enabled" Value="True"/>
<Param Name="Visible" Value="True"/>
<Param Name="Tag" Value=""/>
<Param Name="MousePointer" Value="vbDefault"/>
<Param Name="MouseIcon" Value="Nothing"/>
<Param Name="CanGetFocus" Value="True"/>
<Param Name="(Name)" Value="cmdTestMDI"/>
<Param Name="Index" Value=""/>
</Object>[/XML]

Das <Object Type="VB/TabStrip"> entspricht einem
VB.TabStrip ts = new VB.TabStrip();

Das <Param Name="ForeColor" Value="-2147483630"/> entspricht einem
ts.ForeColor(-2147483630);

und so weiter.

Irgendeine andere Idee, wie man es mit Hilfe von Java anzeigen lassen könnte, ohne Reflections zu nutzen?

Meistens kann man es auch sinnvoll lösen.
Kann sein. Aber ich weiß nicht wie 🙁

Also vllt fürs erste über dein Design nachdenken
Na, ein Design des Programms habe ich ja noch nicht direkt. Nur existierende Ausgangsdateien in XML, die ich gerne angezeigt haben möchte.
 
Zuletzt bearbeitet:

Zurück
Oben