[RESOLVIDO] "Registros em Java"

4 respostas
C

Sou iniciante em Java, no entanto, tenho procurado me adequar na linguagem Java, assim trazendo vários métodos de resolução para essa linguagem através de outras, mas me deparei com a situação em que Java não existe Registro, mas sim um vetor instanciado de outra classe composto de seus atributos. Logo, fica a seguinte sintaxe abaixo a qual eu julgo estar correta, mas o mesmo apresenta erros na compilação.

package teste;
class SubRegistro {    
    public int codigo;
    public String nome;
    
}


package teste;
public class Registro {
    public static void main(String[] args){

        SubRegistro[] reg = new SubRegistro[5];

        for(int i=0;i<5;i++){
            reg[i].codigo = i;
            reg[i].nome = Integer.toString(i);
            
        System.out.println("Código\tNome");

    }
            
        for(int k=0;k<5;k++){
            System.out.println(reg[k].codigo+"/t"+reg[k].nome);
        }
}
}

PS:

run:
Exception in thread "main" java.lang.NullPointerException
at teste.Registro.main(Registro.java:12)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

4 Respostas

C

Não afetando na compilação do mesmo, mas só para constar. A primeiro comando de impressão de tela está fora do primeiro FOR.

otaviojava

O código aparentemente está ok.
Qualquer dúvida só postar aqui no fórum.

L

Seguinte, vc não está inicializando o SubRegistro da posição i;

No seu loop faça assim:

for(int i = 0; i < 5; i++) { reg[i] = new SubRegistro(); // Falta isso reg[i].codigo = i; reg[i].nome = Integer.toString(i); }

C

Agradecido pela informação.

Não sabia que deveria alocar um espaço na memória para cada índice de registro. ;D

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 4
Participantes 3