# Wertebereich bei Attributdeklaration



## Kenelope (28. Dez 2009)

Hallo Leute,

gibt es eine möglichkeit, bei der Deklaration von Attributen direkt einen Wertebereich festzulegen? 
z. B. dass das Attribut number vom typ int eine zahl von 1 bis 10 sein soll.

wie man es bei einem String macht weiß ich, wie z. B.
String realName="Clark Kent";

aber wie ich das bei einer zahl mit einem Wertebereich anstellen soll, hab ich keine ahnung.
Kann mir da jemand bitte auf die Sprünge helfen?

Vielen dank im voraus
Kenelope


----------



## Meldanor (28. Dez 2009)

Variablen haben Wertebereiche:

Byte : -2^7 bis (2^7)-1.
Short : -2^15 bis (2^15)-1
Int : -2^31 bis (2^31)-1.
Long : -2^63 bis (2^63)-1.

Ansonsten kannst du nicht sagne, dass
int number
nur von 1-10 gehen soll.
Du könntest das höchstens mit einer Überprüfung regeln in einer Klasse:

```
public boolean setNumber(int n){
if ( n < 0 || n >= 10)
return false;
else
number = n;
return true;
```


----------



## mattk1 (28. Dez 2009)

Du könntest mit einer Regex prüfen ob die Variable nur erlaubte Werte hat.

Bsp.:

```
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;


public class RegCheck {
	public static void main(String[] args) throws PatternSyntaxException {
		String pattern = "(^[1-9]{1}$)|(^10$)";
		String input = "2";
		Pattern p = Pattern.compile(pattern);
		
		boolean found = p.matcher(input).lookingAt();
		System.out.println(found ? "matches" : "does not match");
	}
}
```


----------

