Olá a todos tenho uma dúvida…
if ( posicaoValida( frota[i][j] ) == false ) return false;
Isso não é igual a assert posicaoValida(frota[i][j] ): “ERROR”
?
Olá a todos tenho uma dúvida…
if ( posicaoValida( frota[i][j] ) == false ) return false;
Isso não é igual a assert posicaoValida(frota[i][j] ): “ERROR”
?
O assert gera um erro. O primeiro código gerava também?
Não.
O assert vai lançar um AssertionError e parar sua aplicação. Enquanto o outro vai simplesmente retornar o metodo.
E assertions não devem ser usadas para esse tipo de coisa, dê uma lida no site da Sun sobre assertion, como e quando usa-las.
O primeiro saltava uma execução… eu queria que o assert terminasse com uma mensagem de erro mas ele nao termina ele passa a proxima instrução
public boolean colocaFrota(final Coordenada[][] frota) {
assert frota != null;
for (int i = 0 ; i != frota.length; i++ )
{
for (int j = 0 ; j != frota[i].length; j++)
{
//salta para o procedimento acima para verificar se esta tudo bem
if ( posicaoValida( frota[i][j] ) == false ) {
return false;
}
}
// passa o caracter b e a posição i da frota para o colocaBarco
char barco = String.valueOf(frota[i].length).charAt( 0); //ele tira o tamanho do frota[i].length
colocaBarco(frota[i], barco);
}
return true;
}
////////////////////////////////////////////////////////////
Esprimentei a trocar o --> if ( posicaoValida( frota[i][j] ) == false ) {
return false;
}
para : assert posicaoValida( frota[i][j] ):" ERROR";
mas ele nao me faz isso … e da outra maneira salta…
Mas o problema é que querem que eu use um assert ali… como faço?