E aí amigos,
Preciso de ajuda com a mensagem em título... fiz um Array de Objetos e quando vou procurar um objeto que tenha como "atributo" o "parametro" de entrada, ele retorna esse erro caso o "objeto" não esteja contido no Array...
O código segue...
import java.util.*;
class Time{
/* Essa classe possui os atributos do Time que serão utilizados na construção
* da tabela de futebol.
* */
String nome;
Time (String n)
{
nome = n;
}
int pontosGanhos = 0;
int golsMarcados = 0;
int golsSofridos = 0;
int saldoGols = golsMarcados - golsSofridos;
int vitorias = 0;
int empates = 0;
int golAvarage ()
{
if (golsSofridos !=0)
return golsMarcados / golsSofridos;
else
return golsMarcados;
}
}
class Campeonato
{
/* Essa classe acumulará os jogos de futebol para uma tabela de classificação
* */
Scanner sc = new Scanner (System.in);
public static Time[]todosDados;
int qtiJogos, qtiTimes;
String advers[][];
int results[][];
void defineTamanho ()
{
/* Método define o tamanho das matrizes: A tabela resultados terá tamanho definido conforme
* quantidade de jogos a serem inseridos. A tabela de classificação também levará em conta
* quantos times participaram dos jogos.
* */
System.out.println ("Quantos jogos deseja inserir no total?");
qtiJogos = sc.nextInt();
advers = new String [qtiJogos][2];
results = new int [qtiJogos][2];
System.out.println ("Quantos diferentes times existem?");
qtiTimes = sc.nextInt();
todosDados = new Time[qtiTimes];
System.out.println(todosDados.length);
}
boolean estaNoArray (Time[]c, String a)
{
/* Esse método irá verificar se no array há um objeto que tenha
* como atributo "nome" a string que é fornecida como parâmetro.
* */
boolean achado = false;
for (int y =0; y <= c.length && !achado; y++)
{
if (c[y].nome.equals(a)==true)
{
achado = true;
System.out.println(c[y].nome);
}
}
return achado;
}
Time retornaTime (Time[]c, String s)
{
/* Esse método retorna o OBJETO que tem a String de parâmetro como atributo "nome".
* */
boolean achado = false;
for (int x = 0; x < c.length && !achado; x++)
{
if (c[x].nome.equals(s)==true)
{
achado = true;
return c[x];
}
}
return new Time(s);
}
int posicaoLivre (Time[]c)
{
/* Esse método retorna o número da próxima posição vazia no Array.
* */
boolean achado = false;
int posicao = c.length;
for (int x = 0; x < c.length && !achado; x++)
{
if (c[x].nome == null)
{
achado = true;
posicao = x;
}
}
return posicao;
}
}
Welcome to DrJava.
> Campeonato teste = new Campeonato();
> Time[] a = new Time[3];
> a[0] = new Time("moacir");
> a[1] = new Time("palmeiras");
> teste.estaNoArray (a, "moacir");
moacir
> teste.estaNoArray (a, "palmeiras");
palmeiras
> teste.estaNoArray (a, "corinthians");
NullPointerException:
at Campeonato.estaNoArray(CampeonatoFutebol.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
>
Será que alguém poderia me ajudar???
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia: