Erro estranho por favor ajudem[ RESOLVIDO ]

5 respostas
Polimorphism

Olá
Estou criando um jogo batalha medieval, mais na hora de executar aparece esse erro:

[color=darkred]java.lang.ExceptionInInitializerError
at Test.main(Test.java:12)[/color]

Nunca tinha ouvido falar desta excecção, me pareceu muito estranha e não consegui resolver isso. Está aqui o código da classe Test, Se prescisarem do resto do codigo eu posto + vai ser meio extenso

public class Test

{

public static void main ( String args[] )

{

Unit alfaUnits[] = new Unit[3];

Unit bravoUnits[] = new Unit[3];

Company alfa = new Company( alfaUnits, 0 );

Company bravo = new Company ( bravoUnits, 0 );
for ( int c = 0 ; c < alfaUnits.length ; c++ )
{
  [u][color=red]alfaUnits[c]= All.ARCHER.clone();[/color][/u]
  alfaUnits[c].setCompany( alfa );
}
for ( int c = 0 ; c < bravoUnits.length ; c++ )
{
  bravoUnits[c] = All.CROSSBOWMAN.clone();
  bravoUnits[c].setCompany( bravo );
}
alfa.setDefautMorale();
bravo.setDefautMorale();
Battle.battle( alfa, bravo );

}
}

Além disso, alguém sabe me explicar como postar o codigo do jeito que vocês fazem? ( em imagens )
Obrigado =D

5 Respostas

T

Por que é que você precisa clonar o objeto?

Polimorphism

Salvei em uma classe ALL todos os tipos de unidades entre outras coisas, com todos os parametros, mas para a batalha funcionar bem cada unidade tem de ser um clone, para que um os danos dados em uma unidades não espalhem para todas elas, assim como moral da tropa etc

Polimorphism

A classe unit implementa cloneable tudo direntinho :smiley:
Edit: Cada unidade tem + de 30 variaveis de instancia naum tinha como fazer manualmente usando construtor c/ parametro Unit

P

ExceptionInInitializerError é lançada quando ocorre uma exception dentro de um método estático.
Coloque todo código do método main() dentro de um try catch e imprima a mensagem de erro.

Polimorphism

Thanks ! :thumbup:

Isso:

java.lang.ExceptionInInitializerError

at Test.main(Test.java:14)

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)

at edu.rice.cs.dynamicjava.symbol.JavaClass$JavaMethod.evaluate(JavaClass.java:312)

at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.handleMethodCall(ExpressionEvaluator.java:92)

at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.visit(ExpressionEvaluator.java:84)

at koala.dynamicjava.tree.StaticMethodCall.acceptVisitor(StaticMethodCall.java:105)

at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:38)

at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:37)

at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:106)

at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29)

at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:101)

at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:86)

at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:47)

at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:203)

at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:180)

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)

at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)

at sun.rmi.transport.Transport$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Unknown Source)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NullPointerException

at Equipment.setImmuneToFirstAttacks(Equipment.java:22)

at Equipment.<init>(Equipment.java:15)

at All.<clinit>(All.java:15)



Resolve meu problema =D O problema é o NullPointer em Equipment.setImmuneToFirstAttacks

Eu pensei que o java era capaz de mostrar a exceção em um método static, vlw []`s

Edit: Eu tava ate esperando um nullPointer :slight_smile:

Criado 13 de agosto de 2009
Ultima resposta 13 de ago. de 2009
Respostas 5
Participantes 3