Enums

Aibo

Mitglied
Hallo Leute,

wie kann ich den Wert bekommen, den ich einer Enum übergebe?
Bsp:

Java:
public enum RegularExpressions {

	// Class Player
	EXPRESSION_PLAYERNAME("^[a-z]*$"),
	
	//Class Company
	EXPRESSION_WALLCOLOR("^[a-z]*$"),
	EXPRESSION_CAPACITY("^[0-9]*$"), 
	
	//Class Employee, Employer, Worker
	EXPRESSION_LASTNAME("^[a-zZ-A]*$"),
	EXPRESSION_FORENAME("^[a-zZ-A]*$"),
	EXPRESSION_BIRTHDAY("^[0-9]{2}[/.]{1}[0-9]{2}[/.]{1}[0-9]{4}$"), 
	EXPRESSION_POSITION("^[a-zZ-A]*$"),
	EXPRESSION_SALARY("^[0-9]*[/.]{1}[0-9]{2}$"); 
	
	RegularExpressions(String expres) { }
}

Wie kann ich nun die Werte ausgeben, die sich hinter den Enums verbergen? Geht das überhaupt?
 
M

Marcinek

Gast
Ja,

du musst diese Werte in einer Instanzvariable SPeichern und dann dafür einen Getter vorsehen.

Java:
public enum RegularExpressions {
 
private String regEx;
    // Class Player
    EXPRESSION_PLAYERNAME("^[a-z]*$"),
    
    //Class Company
    EXPRESSION_WALLCOLOR("^[a-z]*$"),
    EXPRESSION_CAPACITY("^[0-9]*$"), 
    
    //Class Employee, Employer, Worker
    EXPRESSION_LASTNAME("^[a-zZ-A]*$"),
    EXPRESSION_FORENAME("^[a-zZ-A]*$"),
    EXPRESSION_BIRTHDAY("^[0-9]{2}[/.]{1}[0-9]{2}[/.]{1}[0-9]{4}$"), 
    EXPRESSION_POSITION("^[a-zZ-A]*$"),
    EXPRESSION_SALARY("^[0-9]*[/.]{1}[0-9]{2}$"); 
    
    RegularExpressions(String expres) { this.regEx = expres; }

public String getRegEx () { return this.regEx; }
}
 

Crian

Top Contributor
Etwa so:

Java:
public enum RegularExpressions {

	// Class Player
	EXPRESSION_PLAYERNAME("^[a-z]*$"),
	
	//Class Company
	EXPRESSION_WALLCOLOR("^[a-z]*$"),
	EXPRESSION_CAPACITY("^[0-9]*$"), 
	
	//Class Employee, Employer, Worker
	EXPRESSION_LASTNAME("^[a-zZ-A]*$"),
	EXPRESSION_FORENAME("^[a-zZ-A]*$"),
	EXPRESSION_BIRTHDAY("^[0-9]{2}[/.]{1}[0-9]{2}[/.]{1}[0-9]{4}$"), 
	EXPRESSION_POSITION("^[a-zZ-A]*$"),
	EXPRESSION_SALARY("^[0-9]*[/.]{1}[0-9]{2}$"); 
	
	private String expression;
	private Pattern pattern;

	RegularExpressions(String expression) {
            this.expression = expression;
            this.pattern = Pattern.compile(expression);
	}

	public String getExpression() {
	    return expression;
	}

	public Pattern getPattern() {
	    return pattern;
	}
}
 
Zuletzt bearbeitet:
N

nillehammer

Gast
Das Präkompilieren des Patterns ist eine sehr gute Idee. Es ist allerdings nicht nötig, die Expression als extra String zu speichern. Mit der Pattern-Methode pattern() kommt man auch dran. Die Methode getExpression() würde dann so aussehen:
Java:
    public String getExpression() {
        return this.pattern.pattern();
    }
 

Ähnliche Java Themen

Neue Themen


Oben