Programm zur auflistung von variablen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Programm zur auflistung von variablen

    hiho

    gibt es eigentlich ein programm, mit dem man seine variablen in programmen verwalten oder auflisten kann?
    klar kann man das auch selber in einer tabelle machen, aber vielleicht gibt es ja software, die sowas zur verfügungstellt oder sogar auflistet...

    mfg
    contest
    -- Ein Wettnewerb für Jugendliche Programmierer --
    Jeder Helfer ist willkommen ;)
  • ne sry wen ich das unklar geschrieben hab.
    also ich will folgendes machen:
    für das java-programm, das ich im moment schreibe (hab also den quelltext), will ich eine einfache liste aller variablen erstellen, zur übersichtlichkeit.
    damit ich halt weiß, welche variable ich wofür verwendet habe. und da das mit der zeit immer mehr werden, wollt ich die halt irgendwie auflisten.
    contest
    -- Ein Wettnewerb für Jugendliche Programmierer --
    Jeder Helfer ist willkommen ;)
  • Für Java gibt es doch einen Dokumentationsstandard namens [wikipedia]Javadoc[/wikipedia].
    Da man meistens nicht nur für sich selbst dokumentiert, sondern früher oder später damit auch andere deinen Code verstehen, solltest du dich hier an Standards halten.

    Und das meine ich ernst ;)


    Dennoch die Info nach der du gefragt hast:
    Wenn du das Vorhaben wirklich angehen willst, so gibt es für viele Programmiersprachen s.g. "Reflection Class"
    Diese erlauben dir/einem Programm seine eigene Struktur zu kennen, allgemeine Informationen zur Reflection Class findest du hier:
    [wikipedia]http://de.wikipedia.org/wiki/Reflexion_(Programmierung)[/wikipedia]

    Beispiel:
    Das folgende Beispiel zeigt eine Methode, die eine beliebige andere Methode eines gegebenen Objekts aufruft und deren Rückgabewert zurückgibt. Aus Gründen der Vereinfachung unterstützt dieses Beispiel nur den Aufruf von Methoden ohne Parameter, die Zeichenketten ("String") zurückgeben.

    Quellcode

    1. public String getStringProperty(Object object, String methodname) {
    2. String value = null;
    3. try {
    4. Method getter = object.getClass().getMethod(methodname, new Class[0]);
    5. value = (String) getter.invoke(object, new Object[0]);
    6. } catch (Exception e) {}
    7. //Fehlerbehandlung zwecks Übersichtlichkeit nicht implementiert.
    8. return value;
    9. }



    Weitere Links:
  • danke erst ma für die antworten. ich werd mich mal ins das thema Reflection Class einarbeiten.
    klar halt ich mich an standards ;) doc ist vorhanden und wird auch immer erweitert. nur wollt ich halt ne persönliche liste haben, wo alle auf einmal drin sind. in der doc sind die ja dann immer den klassen zugeordnet.

    mfg
    contest
    -- Ein Wettnewerb für Jugendliche Programmierer --
    Jeder Helfer ist willkommen ;)
  • Hallo DarthMaul,

    So ganz versteh ich deinen Wunsch noch nicht. Zuerst einmal sollten wir klären, welche Variablen du meinst. Ich hätte da drei im Angebot: Objekt-Variablen (Felder), Klassen-Variablen (statische Felder) und lokale Variablen (die in Methoden drinnen).

    Bei lokalen-Variablen stellt sich für mich persönlich die Frage nicht, da das nie so viele werden sollten. Ich hab für mich eine Richtlinie: Keine Methode ist länger als 5 Lines of Code. Späterstens bei 10 Lines of Code überleg ich mir, ob es nicht besser ist, die Methode in zwei aufzuteilen.

    Zu den anderen beiden Typen kann ich dir sagen, dass deine Idee etwas umständlich ist, denn du willst eine dynamische Sache (deinen Quellcode) statisch abbilden (deine Variablenliste). Ich wünsch dir schon mal viel Spass, dass konsequent synchron zu halten.

    Falls du es nicht machen willst, kann dir deine IDE weiterhelfen: Bei Eclipse findest du das Unter Window->Show View->Outline. Unter Netbeans findest du das unter Window->Navigate->Navigator. Solltest du eine andere IDE verwenden bitte selbst suchen, und wenn so ein Feature nicht vorhanden dann wechseln ;).

    mfg
    ButAlive
  • Hallo nochmal,

    Zufälle gibts ;). Gestern noch hier über Variablenlisten aus dem Quellcode gesprochen und heute QDox wegen etwas anderem gefunden. Das könnte auch was für dich sein. Schau dir mal qdox.codehaus.org/ an. Das ist ein Java-Quellcodeparser der dir einen einfachen Weg gibt java-Datei zu analysieren. Ich hab dir mal ein kleines Beispiel gebaut, dass du wahrscheinlich noch anpassen musst.

    Quellcode

    1. package qdox.test;
    2. import java.io.File;
    3. import com.thoughtworks.qdox.JavaDocBuilder;
    4. import com.thoughtworks.qdox.model.JavaClass;
    5. import com.thoughtworks.qdox.model.JavaField;
    6. import com.thoughtworks.qdox.model.JavaSource;
    7. public class QDoxTest
    8. {
    9. public static void main(String[] args)
    10. {
    11. if(args.length==0)
    12. {
    13. System.out.println("Fehlender Paramter: Ordner der *.java Dateien angeben");
    14. System.exit(1);
    15. }
    16. File f = new File(args[0]);
    17. if(!f.exists()||!f.isDirectory())
    18. {
    19. System.out.println("Kein Ordner angegeben");
    20. System.exit(1);
    21. }
    22. JavaDocBuilder builder = new JavaDocBuilder();
    23. builder.addSourceTree(f);
    24. JavaSource[] sources = builder.getSources();
    25. processSources(sources);
    26. }
    27. private static void processSources(JavaSource[] sources)
    28. {
    29. for (JavaSource javaSource : sources)
    30. {
    31. System.out.println("Datei: "+javaSource.getURL().getFile());
    32. System.out.println("==============================================");
    33. JavaClass[] classes = javaSource.getClasses();
    34. processClasses(classes);
    35. }
    36. }
    37. private static void processClasses(JavaClass[] classes)
    38. {
    39. for (JavaClass javaClass : classes)
    40. {
    41. System.out.println("Klasse: "+javaClass.getFullyQualifiedName());
    42. System.out.println("==============================================");
    43. JavaField[] fields = javaClass.getFields();
    44. processFields(fields);
    45. JavaClass[] nestedClasses = javaClass.getNestedClasses();
    46. processClasses(nestedClasses);
    47. }
    48. }
    49. private static void processFields(JavaField[] fields)
    50. {
    51. for (JavaField javaField : fields)
    52. {
    53. String[] modi = javaField.getModifiers();
    54. System.out.print("Feld: ");
    55. for (String m : modi)
    56. {
    57. System.out.print(m+" ");
    58. }
    59. System.out.println(javaField.getType()+" "+javaField.getName());
    60. }
    61. System.out.println("=======================================================");
    62. }
    63. }
    Alles anzeigen


    Kurze Erklärung zum Aufruf: java -cp:pfad_zu_deiner_qdox-1.9.jar QDoxTest "Ordner in dem deine *.java Dateien liegen"
    Das Programm sucht dir alle Java-Klassen die in dem angegebenen Ordner liegen und spuckt dir auf der Konsole alle Objekt- und Klassenvariablen aus.

    HTH
    ButAlive