Criação dinâmica de nomes de variáveis

6 respostas
E

Pessoal,

Estou com um problema, fiz o seguinte código 1 para substituir o código 2, só que o netbeans me indica erro " ']'expected ", alguém sabe alguma outra maneira de criar o nome da váriável dinamicamente ? O ainda alguém acha o erro no meu código ?

########################

Código 1:

String teste[]= new String[6];

for(char a=1;a==6;a++)

{

teste[a]=type+a;

String teste[a] =hora[a];

}

########################

Código 2:

final String type1 =hora[1];

final String type2 =hora[2];

final String type3 =hora[3];

final String type4 =hora[4];

final String type5 =hora[5];

final String type6 =hora[6];

########################

Valeu galera,

Abraço

6 Respostas

D

Não existe isso em Java.
E também não entendi nada do que você quer fazer.

E

O meu problema é, vou precisar de variáveis de nome typeX, onde X vai ser gerado automaticamente, depende de uma condição que será preenchida pelo usuário, no código que coloquei o loop acaba em 6, porém na aplicação que estou criando a principio vou usar até 288, porém isso pode ser muito maior talvez até 1000. E não teria condições de criar 1000 variáveis na mão, e o código ficaria gigantesco, por isso com o for eu resolveria o problema.

Na linha: teste[a]=“type”+‘a’; sendo a=1, estaria guardando na primeira posição do vetor a String “type1”, que seria o nome de uma variável que irá receber um valor do vetor hora[].

T

eduferrari:
O meu problema é, vou precisar de variáveis de nome typeX, onde X vai ser gerado automaticamente, depende de uma condição que será preenchida pelo usuário, no código que coloquei o loop acaba em 6, porém na aplicação que estou criando a principio vou usar até 288, porém isso pode ser muito maior talvez até 1000. E não teria condições de criar 1000 variáveis na mão, e o código ficaria gigantesco, por isso com o for eu resolveria o problema.

Na linha: teste[a]=“type”+‘a’; sendo a=1, estaria guardando na primeira posição do vetor a String “type1”, que seria o nome de uma variável que irá receber um valor do vetor hora[].

Java != JavaScript.
Seu problema pode ser resolvido com arrays (você só tem uma variável, que é um array de 1000 posições - você não falou 1000 variáveis?) ou com um Map.
Mesmo em JavaScript seu problema seria resolvido com um “associative array”, que é um Map disfarçado.

J

Use um Map:

String teste[]= new String[6];

Map<String, String> valores = new HashMap<String, String>();

for(int i=1;i<=6;i++){
   valores.put("type"+i, hora[i]);
}

Quando quiser o valor:

String type1 = valores.get("type1");

http://java.sun.com/javase/6/docs/api/java/util/Map.html

F

1o : posiçoes de array sao int, e nao char. (no for, troque char por int)
2o : um array de 6 posicoes vai de 0 a 5, e nao de 1 a 6.

axo q eh isso.

E

Pessoal,

Valeu pela força, acabei usando Vector pois eu conhecia um pouco e resolveu o problema valeu pela força.

Criado 19 de janeiro de 2007
Ultima resposta 22 de jan. de 2007
Respostas 6
Participantes 5