Name einer Variable als String nutzen

DunKing

Mitglied
Hallo Leute,
ich habe eine kurze Frage bezüglich der Programiersprache Java.
Wie kann ich den Namen einer Variable in einen String umwandeln?
Beispielsweise will ich aus dem String result, den String mit dem Inhalt "result" machen.
Vorzugsweise ohne den eigentlichen String zu ändern!
Danke!
 
Danke füe die schnelle Antwort!
Es geht im Prinzip um einen Konstruktor welcher einen String als Parameter übergeben bekommt.
Die Attribute BeispielAttribut1, BeispielAttribut2 und BeispielAttribut3 werden so gesetzt.
Jedoch soll noch ein viertes String Attribut gesetzt werden. Dieses soll den Namen des Parameters als String enthalten.

Beispielsweise:
public class beispielObjekt{
public int BeispielAttribut1
public int BeispielAttribut2
public int BeispielAttribut3
public String identifier

//int haben nichts zu bedeuten 🙂
// dann der Kontrsuktor, hier findet sich das eigentliche Problem:

public beispielObjekt (String beispiel)
this.BeispielAttribut1 = beispiel.irgendwas
.
.
.
this.identifier = "beispiel" //-> der Name des Parameters soll in diesem String gespeichert werden.

Sorry aber das Thema welches du gepostet hast hat mir nicht weitergeholfen, vielleicht kannst du es mir an disem Beispiel zeigen 🙂
Danke
 
Zuletzt bearbeitet:
Wenn es dir um die ID geht, dann erweitere den Konstruktor einfach so, dass er die ID mitbekommt:
Java:
public BeispielObjekt(String id, String beispiel)
 
Den Namen legst du doch manuell im Konstruktorkopf fest? Dann kodier das doch einfach hart und schreibe immer "beispiel" in deine Variable :idea:


Oder willst du den Namen, den die Variable in der aufrufenden Methode hatte? Falls ja, dann vergiss dein Vorhaben. Ich behaupte einfach mal, dass das nicht geht.

Vielleicht wirst du mal etwas genauer, was du eigentlich tatsächlich vorhast?!
 
Geht es dir um den Namen des ...
  1. ... Parameters? Dieser ist immer beispiel, d.h.
    Java:
    this.identifier = "beispiel";
    ist folglich immer korrekt.
  2. ... Arguments? Wenn du den ursprünglichen Variablennamen des Arguments erst zur Laufzeit herausfinden willst: Vergiss es einfach. Wenn du eine Methode oder einen Constructor aufrufst, dann kriegt diese nur die Werte ihrer Argumente übergeben. Ob ein Argument ursprünglich ein String-Literal, eine lokale Variable oder sonstwas war ist dem Aufgerufenen herzlich Wurst und er kriegt diese Info auch nie zu Gesicht. Allerdings weißt du aus dem Sourcecode alle Stellen, an denen der Constructor aufgerufen wird, und somit auch immer wie evtl. die lokale Variable hieß, mit der er aufgerufen wurde. Was uns zur wahrscheinlich einzig möglichen Lösung führt, nämlich alle Aufrufe wiefolgt zu ändern:
    Java:
    String arg1 = "irgendeinWert1";
    ... = new Beispiel(arg1);
    ...
    String arg2 = "irgendeinWert2";
    ... = new Beispiel(arg2);
    zu
    Java:
    String arg1 = "irgendeinWert1";
    ... = new Beispiel("arg1", arg1);
    ...
    String arg2 = "irgendeinWert2";
    ... = new Beispiel("arg2", arg2);
 
Es ist eine Teilaufgabe einer großen Hausaufgabe, ich möchte nur ungern direkt die Aufgabe hierhin kopieren.
Erstmal muss ich gestehen das ich es etwas falsch verstanden hatte, es ist kein Konstruktor!

es ist eine Methode :
public TextCollection beipsielmethode (String dateiName){
/* durch eine gegeben Methode bei der uns egal sein darf wie sie funktioniert und welche in dieser beispielmethode nochmal mit dem selben Parameter aufgerufen wird, enthalten wir ein String Array mit 2 Feldern. In diesen 2 Feldern ist der String welcher in dateiName war, nach Kriterien aufgeteilt. Der Inhalt des einen Feldes soll im ersten Attribut gespeichert werden, der des anderen im zweiten.
Das letzte Attribut welches ein String ist, soll nun "dateiName" beinhalten.
Würde man diese Methode also so aufrufen :

beispielobjekt.beispielmethode( datei17),
dann würde das letzte Attribut "datei17" beeinhalten.

Hoffe ich konnte es einigermaßen erklären 🙂
Wenn sowas tatsächlich nciht gehen sollte, frage ich mich was die sich beim setellen dieser Aufgabe dachten 🙂
 
Zuletzt bearbeitet:
Das letzte Attribut welches ein String ist, soll nun "dateiName" beinhalten.
Würde man diese Methode also so aufrufen :

beispielobjekt.beispielmethode( datei17),
dann würde das letzte Attribut "datei17" beeinhalten.
Wenn ich sowas lese, kriege ich schon den Verdacht, dass du die Aufgabenstellung auch hier falsch verstanden hast, und es im Original wohl eher hieß:
Das letzte Attribut welches ein String ist, soll nun den Dateinamen beinhalten.

Bitte lies das noch mal genau nach. Ansonsten wäre eine solche Aufgabenstellung für Java unsinnig, vollkommen praxisfern und wie gesagt auf normalem Weg nicht machbar.
 
Zuletzt bearbeitet von einem Moderator:
Ja, du hast tatsächlich Recht.
"Der Dateiname selbst entspricht der ID " //ID ist das String Attribut des Objekts.
Ich würde jetzt eigentlich fragen ob das nicht dasselbe ist, aber ich denke diese Frage ist nun mehr als unnötig 🙂
ID soll also nicht auf "dateiname" gesetzt werden?
 
Zuletzt bearbeitet:
Um noch mal auf das Herausfinden eines Namens der Variable zurückzugreifen: Auf dieser Webseite wird das gut erklärt: Java Reflection: How to get the name of a variable? - Stack Overflow

Du kannst das ganze also so machen: (Quelle: StackOverflow)
Java:
Field[] fields = YourClass.class.getDeclaredFields();
    System.out.println(fields.length);     //gives no of fields
    for (Field field : fields) 
    {
        System.out.println(field.getName());   //gives the names of the fields
    }
 
Zuletzt bearbeitet:
Davon abgesehen, dass es sich bereits gestern Abend geklärt hat, dass dieses Vorhaben nicht erwünscht war, kannst du gerne mal erläutern, wie du mit dieser "Lösung", die sich unschwer erkennbar auf Felder von Klassen bezieht, die Namen lokaler Variablen herausfinden willst.
 

Zurück
Oben