Não consigo identificar o erro

3 respostas
R
package jogo;

import java.util.ArrayList;

public class Baralho {
	
	private String[] cor = {"verde", "amarelo", "azul", "vermelho"};
//	static ArrayList<Carta> baralho;
	
	public Baralho(){
		ArrayList<Carta> baralho = null;
		CartaSimples(baralho);
		CartaSimples(baralho);
		MaisDois(baralho);
		MaisDois(baralho);
		Pula(baralho);
		Pula(baralho);
		Reverse(baralho);
		Reverse(baralho);
		Muda(baralho);
		MaisQuatro(baralho);
		Mostrar(baralho);
		
	}
	
	public ArrayList<Carta> CartaSimples(ArrayList<Carta> b){	
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=cor[j];
			for(int i=0; i<10; i++){
				String v =Integer.toString(i);
				c.valor=v;
				b.add(c);
//				System.out.println(c);
			}			
		}
		return b;
	}

	public ArrayList<Carta> MaisDois(ArrayList<Carta> b){		
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=cor[j];
			c.valor="+2";
			b.add(c);
//			System.out.println(c);
		}
		return b;
	}

	public ArrayList<Carta> Pula(ArrayList<Carta> b){		
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=cor[j];
			c.valor="Pula";
			b.add(c);	
//			System.out.println(c);
		}
		return b;
	}

	public ArrayList<Carta> Reverse(ArrayList<Carta> b){		
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=cor[j];
			c.valor="Reverse";
			b.add(c);
//			System.out.println(c);
		}
		return b;
	}

	public ArrayList<Carta> Muda(ArrayList<Carta> b){		
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=" ";
			c.valor="Troca a cor";
			b.add(c);
//			System.out.println(c);
		}
		return b;
	}

	public ArrayList<Carta> MaisQuatro(ArrayList<Carta> b){		
		for(int j=0; j<4; j++){
			Carta c = new Carta();
			c.cor=" ";
			c.valor="+4";
			b.add(c);
//			System.out.println(c);
		}
		return b;
	}
	
	public void Mostrar(ArrayList<Carta> b){
		for (int i = 0; i < b.size(); i++) {
			System.out.println(b.get(i));
		}
	}
	
}

avisa sobre java.lang.reflect.InvocationTargetException (que eu não sei o que significa) e também java.lang.NullPointerException mais eu não entendo o por que. O que eu notei é que o codigo que da pau é b.add©, responsável por adicionar uma “carta”(objeto) ao “baralho”(ArrayList de Cartas). Testei o método usando um “System.out.println” mas só funciona quando o tal codigo não existe, o método “Mostrar()” também não funciona, mas acho que esse ultimo erro da problema devido ao primeiro. Caso alguém possa me ajudar eu realmente agradeço pois sou novato e, realmente, não enconto o erro.

3 Respostas

rafachies

Cara,

substitua : ArrayList baralho = null;
por: ArrayList baralho = ArrayList()

Se você não inicializar a lista, ela fica nula. Conseqüentemente você está fazendo um “null.add©” … ou seja …NullPointerException.

[]'s

rafachies

Ops …

substitua po ArrayList baralho = new ArrayList();

havia omitido o new.

[]'s

R

Valeu !

Criado 13 de janeiro de 2011
Ultima resposta 14 de jan. de 2011
Respostas 3
Participantes 2