Erro ao utilizar Array.copyOf

4 respostas
V

E ae galera fmz?

Bom, estou fazendo um programa na faculdade e estou encontrando dificuldades quanto chamo um dos métodos criados na minha classe.

Existe uma classe Disciplina, que possui um método que adiciona objetos do tipo Aluno(outra classe do sistema) em um vetor de Alunos.

public void AddAluno(Aluno novo){
	    alunos = Arrays.copyOf(this.alunos,this.alunos.length + 1);
	    alunos[alunos.length - 1] = novo; 
	 }

Porém ao efetuar um teste no método ocorre um problema. “java.lang.NullPointerException”.

Abaixo segue o código de teste.

public static void main(String args[]){
    	Disciplina a = new Disciplina("Teste");
    	Aluno g = new Aluno(1, "Fulano");
    	a.AddAluno(g);
    	//System.out.println(a.GetQuantosAlunos());
       }

Não sei se fui muito claro, mas se alguém puder me ajudar agradeço.

Abs.

4 Respostas

diego.sas

No trecho de código.

alunos = Arrays.copyOf(this.alunos,this.alunos.length + 1);

Tenha certeza que alunos ja foi instanciado!

V

Eita, era isso mesmo Diego.

Valeu.

V

Wellington,

Eu não tinha inicializado, vacilei, agora ta funcionando.

Valeu.

WellingtonRamos

Onde ocorre o nullpointer exception?

Por acaso você inicializou teu array?

Fiz este teste e funcionou:
int[] array = new int[10]; //Inicializando o array. Caso não seja feito, ocorre nullpointerexception
		for(int i = 0; i < array.length; ++i) {
			array[i] = i;
		}
		
		array = Arrays.copyOf(array, 15);
		for(int j = 0; j < array.length; ++j) {
			System.out.println(array[j]);
		}
Criado 20 de setembro de 2011
Ultima resposta 20 de set. de 2011
Respostas 4
Participantes 3