Namen von Konstanten mit Strings vergleichen

Status
Nicht offen für weitere Antworten.

rapthor

Bekanntes Mitglied
Hallo,

irgendwie komme ich nicht darauf, wie ich einen Konstantennamen einer JAVA-Klasse zur Laufzeit mit einem String vergleichen kann. Im konkreten Fall geht es darum, für einen String (z.B. "MAY") den äquivalenten Integer herauszufinden. Und dies für die Calendar-Klasse.

Ich habe also einen String und wenn dieser mit einem Konstantennamen der Klasse Calendar übereinstimmt (int JANUARY, int DECEMBER, int JULY, ...), so soll mir die int-Repräsentation dieses Wortes zurückgegeben werden.

Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt ...
 

norman

Top Contributor
du willst imho um zu viele ecken gehen.
januar - dezember haben die werte 0-11; das kannst du einfacher 'per hand' zuweisen..
 

rapthor

Bekanntes Mitglied
norman hat gesagt.:
du willst imho um zu viele ecken gehen.
januar - dezember haben die werte 0-11; das kannst du einfacher 'per hand' zuweisen..

An sich geht das auch, ja. Hätte ja sein können, dass es eine allgemeinere Methode dafür gibt. Denn es gibt ja eine Unmenge an Klassen, die Konstanten verwenden.

Danke trotzdem!
 

lhein

Top Contributor
Oder du benutzt die reflection API:

Code:
String myFieldName = "MAY";
GregorianCalendar cal = new GregorianCalendar();
Field[] fields = cal.getClass().getFields();
for (int i=0; i<fields.length; i++)
{
	if (fields[i].getName().equalsIgnoreCase(myFieldName))
	{
		try
		{
			System.out.println(fields[i].getInt(fields[i]));
		}
		catch (IllegalAccessException ex)
		{
			ex.printStackTrace();
		}				
	}
}

Das Beispiel ist nen Quickhack und somit sicherlich nicht die schönste und beste Art.
Es zeigt aber, wie man sowas machen könnte.

lr
 

clemson

Bekanntes Mitglied
Code:
package org.javaforum.y06.may.reflection;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Calendar;

/**
* This class gets the value of a constants by reflection.
*/
public class ReflectionTest
{

   /**
    * @param args
    * @throws NoSuchFieldException
    * @throws SecurityException
    * @throws IllegalAccessException
    * @throws IllegalArgumentException
    */
   public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException,
         IllegalAccessException
   {
      Class clazz = Calendar.class;
      final String constantName = "JUNE";

      // get the field with specific name, of given class
      Field field = clazz.getDeclaredField(constantName);

      // check if field is declared "public final static int"
      int modifiers = field.getModifiers();
      if (Modifier.isFinal(modifiers) && Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
            && field.getType() == int.class)
      {
         // field is a constant
         int value = field.getInt(clazz);
         System.out.println("Value of constant with name " + constantName + " is: " + value);
      }

   }
}
 

lhein

Top Contributor
Ok, wenn ihm schon alle Arbeit abgenommen wird, dann aber bitte richtig :)

Code:
     Class clazz = Calendar.class;
      final String constantName = "JUNE";

      // get the field with specific name, of given class
      Field field = clazz.getDeclaredField(constantName);

      // check if field is declared "public final static int"
      int modifiers = field.getModifiers();
      if (Modifier.isFinal(modifiers) && Modifier.isStatic(modifiers) && Modifier.isPublic(modifiers) && field.getType() == int.class)
      {
         // field is a constant
         int value = field.getInt(clazz);
         System.out.println("Value of constant with name " + constantName + " is: " + value);
      }

Man beachte das .isStatic

lr
 

clemson

Bekanntes Mitglied
Code:
if (Modifier.isFinal(modifiers) && Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers) && field.getType() == int.class)

hmm, da seh ich grad, dass ich zweimal auf isFinal überprüfe.

sicher ist sicher, aber das ist dann doch zuviel... hast recht LR, danke für das "korrektur lesen"... ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
PCOmega137 Objekten zufällig erzeugte Namen geben Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
A Mithilfe von einer Nummer einen Namen finden n-Beziehung Allgemeine Java-Themen 8
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
M Event Handling Vom ActionEvent zum Parent-Namen Allgemeine Java-Themen 11
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
F Namen des Interfaces ausgeben Allgemeine Java-Themen 1
C Namen-Begrüßung Kommandozeilenparameter Allgemeine Java-Themen 8
K Labels mit Namen ansprechen Allgemeine Java-Themen 3
G Jar-File soll eignen *.jar Namen ausgeben Allgemeine Java-Themen 10
T Methoden per String-Namen aufrufen Allgemeine Java-Themen 2
E Prüfen ob Fenster mit Namen offen ist Allgemeine Java-Themen 2
M Festplatte am Namen erkennen Allgemeine Java-Themen 2
T Wie in abstrakter Klasse den namen der implementierenden Klasse rausfinden? Allgemeine Java-Themen 5
U Namen von Klassen haben $-Zeichen Allgemeine Java-Themen 5
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
F Klasse ohne voll qualifizierenden Namen laden Allgemeine Java-Themen 5
V Dateien mit &-Zeichen im Namen öffnen Allgemeine Java-Themen 13
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
F deutsche namen für verben/substantive für Methoden/Klassen Allgemeine Java-Themen 10
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
V Class Mapping - Klasse unter anderem Namen verfügbar machen Allgemeine Java-Themen 8
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
F Wie erfahre ich dynamisch den namen eines aktuellen Objektes Allgemeine Java-Themen 2
C dynamische variablen Namen! Allgemeine Java-Themen 4
K Funktion unabhängig vom Namen aufrufen Allgemeine Java-Themen 5
G Namen von Dateien von der CD auslesen Allgemeine Java-Themen 5
E Namen Vergleichen Allgemeine Java-Themen 6
S Den Namen eines gemounteten Shares rausbekommen Allgemeine Java-Themen 2
I $ zeichen im class-namen Allgemeine Java-Themen 4
B Namen eines Objekts generieren? Allgemeine Java-Themen 4
S Lesen der eingerichteten ODBC DSN Namen Allgemeine Java-Themen 8
T Klassen mit gleichem Namen neu laden Allgemeine Java-Themen 7
M java klassen beerben u. den gleichen namen verwenden?(Naming Allgemeine Java-Themen 6
C kann man dynamische variablen namen vergeben? Allgemeine Java-Themen 2
Neumi5694 Compiler-Fehler Konstanten entfernen während des Kompiliervorgangs Allgemeine Java-Themen 7
R Konstanten initialisieren - FRAGE Allgemeine Java-Themen 3
H Best Practice zu vielen konstanten Objekten? Allgemeine Java-Themen 10
E Variablen Konstanten definieren Allgemeine Java-Themen 4
F Konstanten mir Strings "verknuepfen" Allgemeine Java-Themen 10
Z Konstanten in Java Allgemeine Java-Themen 9
S jdk versus openjdk - Optimierung von Konstanten? Allgemeine Java-Themen 8
J abstrakte Klassen, Konstanten und Konstruktor Allgemeine Java-Themen 9
D binäres ODER oder mehr Konstanten? Allgemeine Java-Themen 10
I Konstanten bei Erzeugung eines Objekts initialisieren Allgemeine Java-Themen 3
Schandro Annotation vs Javadoc bei Konstanten Allgemeine Java-Themen 2
L Konstanten der Klasse Color - Naming Conventions Allgemeine Java-Themen 6
GilbertGrape persistentes Enum oder Konstanten? Allgemeine Java-Themen 3
F Warum lokale Konstanten klein schreiben? Allgemeine Java-Themen 4
G Effizienz von enum vs. Konstanten Allgemeine Java-Themen 4
T Probleme mit Konstanten und Stringverkettung Allgemeine Java-Themen 5
D Zusammensetzen von konstanten String Arrays zu einem Neuen Allgemeine Java-Themen 14
C Seltsame Konstanten (und Verwendung) Allgemeine Java-Themen 15
R Erstellen zusätzlicher Konstanten beim Kompiliervorgang Allgemeine Java-Themen 3
M Speicherplatzanforderung von Konstanten Allgemeine Java-Themen 13
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
N MySQL mit Strings Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
P Strings: equals vs == Allgemeine Java-Themen 47
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
J Strings int textdokumente speicher Allgemeine Java-Themen 3
KeVoZ_ Nacheinander folgende Strings in Textdokument auf neue Zeile schreiben Allgemeine Java-Themen 6
K Strings sortieren: 2 Kritieren Allgemeine Java-Themen 5
A Vector Strings in Array splitten Allgemeine Java-Themen 6
B Wie vergleiche ich Strings in einer Liste? Allgemeine Java-Themen 5
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H RegularExpression zwischen zwei Strings Allgemeine Java-Themen 2
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
H Strings vergleichen Allgemeine Java-Themen 9
O Mustererkennung in Strings Allgemeine Java-Themen 4
Y String-Collection: längste gemeinsame Strings / Prefixe Allgemeine Java-Themen 3
F Problem mit Strings Allgemeine Java-Themen 8
D Strings chemisch splitten Allgemeine Java-Themen 3
K Wörter in Strings zählen Allgemeine Java-Themen 7
L Strings nach sortiertem String zurück ordnen Allgemeine Java-Themen 0
L Strings nach gleichem Muster ordnen Allgemeine Java-Themen 4
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
D Strings vergleichen; Komma ignorieren Allgemeine Java-Themen 3
K Java Operatoren mit Strings darstellen Allgemeine Java-Themen 8
G Strings erzeugen Allgemeine Java-Themen 20
B HTML Tags in Strings umwandeln Allgemeine Java-Themen 4
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
A ,,Textformatierungsbefehle" für strings deaktivieren Allgemeine Java-Themen 8
S Strings vergleichen Allgemeine Java-Themen 11
C Strings in Excel einlesen! Allgemeine Java-Themen 2
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben