• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Namen einer Konstanten in Java

slayercon

Meraner
Registriert
17.01.05
Beiträge
231
Hallo,
kennt jemand von euch die möglichkeit den Namen, nicht den Inhalt einer Konstanten als String auszugeben ?? geht um eine template konfigurationsgeschichte ...
Bsp.
Code:
private static String REPORT_PREFIX = "report/";
lg s.
 

Senior Sanchez

Damasonrenette
Registriert
08.09.06
Beiträge
491
Ach du willst diesen String da ausgeben?
Hmm, das geht nur mittels Reflection.

Alternativ schaue dir mal enums an, da kann man auch Konstanten definieren nur wirds da etwas tricky.
 

kauan

Stina Lohmann
Registriert
31.12.05
Beiträge
1.043
Ich weiss zwar die Antwort auf deine Frage nicht, aber Konstanten definiert man als static final. Dadurch koennen sie spaeter nicht geaendert werden (der Sinn von Konstanten).
Siehe hier:
2.7.11 Finale lokale Variablen

gruss
Jonathan
 

slayercon

Meraner
Registriert
17.01.05
Beiträge
231
@kauan
danke für den Hinweis weiss ich eigentlich aber .... naja irgendwie übersehen

@Senior Sanchez
Wieso Enums ?? die Konstante soll nur einen Wert haben und ich würde den Namen der Konstanten gerne als Key für einen Cache (String) benutzen ...

lg s.
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
@Senior Sanchez
Wieso Enums ?? die Konstante soll nur einen Wert haben und ich würde den Namen der Konstanten gerne als Key für einen Cache (String) benutzen ...

Was spricht dann gegen eine HashMap?

Senior Sanchez meinte vll, dass Du die Kontantennamen mittels Enumeration speichern und verwalten solltest.
 

iMe

Gast
Code:
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class PrintConst {

	private static final String MY_CONST = "whatever!";
	
	public static void main(String[] args) {

		Field[] fields = PrintConst.class.getDeclaredFields();
		for (int i = 0; i < fields.length; i++) {
			Field field = fields[i];
			int mod = field.getModifiers();
			if(Modifier.isFinal(mod) && Modifier.isStatic(mod) && Modifier.isPrivate(mod)) {
				System.out.println(field.getName());
			}
		}
	}
}

hth
 
  • Like
Reaktionen: slayercon

slayercon

Meraner
Registriert
17.01.05
Beiträge
231
danke die reflectionlösung werde ich mal austesten ... aber auch die hashmap is keine blöde idee danke an alle ..
lg s.
 

slayercon

Meraner
Registriert
17.01.05
Beiträge
231
stimmt da hab ich beide werte direkt als string ... könnte beim nächstem refactoring durchputz gemacht werden ...

danke macmark