Preciso passar um array de String para outro método, mas não consigo.
String[] s = new String[14];
for(int i = 0; i < 14; i++)
s[i] = jogo[i];
database.salvarJogo(s);
Na classe Database:
public void salvarJogo(String[] jogo) {
String[] j = new String[14];
for(int i = 0; i < 14; i++)
j[i] = new String(jogo[i]);
Por que nao funciona?
[quote=“NewbieJava”]Preciso passar um array de String para outro método, mas não consigo.
String[] s = new String[14];
for(int i = 0; i < 14; i++)
s[i] = jogo[i];
database.salvarJogo(s);
Na classe Database:
public void salvarJogo(String[] jogo) {
String[] j = new String[14];
for(int i = 0; i < 14; i++)
j[i] = new String(jogo[i]);
Por que nao funciona?[/quote]
A linha
s[i] = jogo[i];
só faz sentido se jogo tb for um array se String. supondo que isso é verdade faça apenas database.salvarJogo(jogo);
E sendo que no metodo salvarJogo , jogo já é um array de string, não precisa criar cópias. portanto aquele j e aquele for são inúteis. use jogo diretamente
Outro problema é o numero 14. Pq 14 ? o for deveria ir no máximo até o jogo.length ou menos. Como vc sabe que 14 é menor que esse numero?
sem saber pq não funciona, qual é o erro que acontece ou qual é o pro´posito do codigo não ha muito mais que eu possa dizer…
notas:
Use plurais para representar arrays; use jogos em vez de jogo. O mesmo é válido para os métodos. Se o parametro é array o nome deve ser no plural ; salvarJogos em vez de salvarJogo . o singular espera-se que save apenas um.
use nomes de variáveis de acordo com o seu tipo . jogos[] deveria ser um array de objectos Jogo , mas não é. Então chame outro nome como nomesDeJogos[] ou idsDeJogos[] (não sei o que vem naquela string). Um nome é natural ser um string.
não use numeros mágicos , ou seja, numeros como aquele 14 que ninguem sabe o que significa. use constantes com nomes
(por exemplo final int LIMITE_DE_JOGOS = 14;)
Estas medidas tornam o código mais legível e código mais legível é código com menos erros.
Por fim, se tiver mesmo que copiar arrays, use System.copyArray em vez de um for com criação de duplicados. é mais eficiente e simples de usar.
Obrigado pelas dicas.
Vou tentar corrigir esses hábitos ruins de programação.
Valeu!