Question

Je développe une application Android.

Je veux taille ensemble à un tableau de caractères comme ceci:

public char[5] language;

Mais cela ne fonctionne pas. Je dois supprimer le numéro cinq pour le faire fonctionner.
Je veux limiter à cinq caractères à la variable de langue. Comment puis-je faire?

Merci.

Était-ce utile?

La solution

Vous ne pouvez pas le faire comme ça. En Java, le type d'un tableau ne comprend pas la taille de lui. Voir ma réponse à cette question plus tôt . (Ignorer la partie sur les méthodes de abstract dans cette question ... ce n'est pas la vraie question.)

La taille d'un tableau est déterminé par l'expression qui le crée; par exemple. ce qui suit crée un tableau de caractères qui contient 5 caractères, il remplace plus tard avec un autre tableau qui contient 21 caractères.

public char[] language = new char[5];
...
language = new char[21];

Notez que la création se fait par l'expression RHS des égaux. La longueur d'un groupement fait partie de son « type » « valeur », et non son.

Autres conseils

Pour citer les JLS:

  

la longueur d'un réseau ne fait pas partie de son type.

Pour initialiser un tableau que vous devez faire:

public char[] language = new char[5];

D'autres solutions sont

public char[] language = {0, 0, 0, 0, 0};

ou

public char[] language;
language = new char[5];

En Java, la déclaration de tableau ne peut pas contenir la taille du tableau; nous savons que la variable contiendra un tableau d'un type spécifique. Pour avoir un tableau initialisé (et avec une taille), vous devez l'initialiser soit en utilisant new ou en utilisant un raccourci qui permet d'initialiser et des valeurs de consigne pour un tableau en même temps.

La meilleure façon d'avoir à vérifier si un tableau a une taille spécifiée, est de vérifier réellement la taille du tableau vous avec quelque chose comme if(array.length == 5).


Ressources:

Sur le même sujet:

La variable elle-même est juste de type char-tableau (char[]), de sorte que vous ne pouvez pas limiter la taille de la variable type . Ce que vous pouvez limiter la taille du tableau instanciation et enregistrer à cette variable:

char[] language = new char[4];
public char[] language = new char[5];

Vous ne pouvez pas limiter la variable elle-même à la longueur 5; vous devez appliquer cette invariant dans votre logique. Ce qui signifie qu'il ne devrait pas y être public:

private char[] language = new char[5];

...

public void setLanguage(final char[] language)
{
   // or maybe language.length != 5, or whatever you really mean
   if (language.length > 5)
     throw new IllegalArgumentException("language must have length <= 5");
   this.language = language;
}

Peut-être que vous voulez essayer le style générique en utilisant ArrayList comme la représentation du tableau. Ainsi, vous pouvez trouver la flexibilité en utilisant des méthodes ArrayList.

private ArrayList<Character> alchar = new ArrayList<Character>(5);

............................................


public void addChar(Character ch){
    if (alchar.size() <= 5)
       alchar.add(ch);
}

public ArrayList<Character> getChars(){
   return alchar;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top