• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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.
 
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.
 
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
 
@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.
 
@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.
 
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
danke die reflectionlösung werde ich mal austesten ... aber auch die hashmap is keine blöde idee danke an alle ..
lg s.
 
stimmt da hab ich beide werte direkt als string ... könnte beim nächstem refactoring durchputz gemacht werden ...

danke macmark