Dúvida - AutoBox Java5 - java.lang.VerifyError

4 respostas
F

Tentei fazer isso:

Double n = new Double(1);
Double m = new Double(2);
m = m - n;

Erro:

Exception in thread "main" java.lang.VerifyError: (class: TesteAutobox, method: main signature: ([Ljava/lang/String;)V) Expecting to find object/array on stack

Resolvi dessa forma:

Double n = new Double(1);
Double m = new Double(2);
m = m.doubleValue() - n.doubleValue();

Alguém sabe porque acontece isso?

4 Respostas

T

Quando você executa java -version o que ele mostra?
Tentei reproduzir seu erro e não consegui. (pode ser que você esteja usando um beta, ou então que você esteja usando a versão errada)

C> java -version

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
F

Estou utilizando o 5 update 1

java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)
Dennys

fabriciogiordani:
Tentei fazer isso:

Double n = new Double(1);
Double m = new Double(2);
m = m - n;

Erro:

Exception in thread "main" java.lang.VerifyError: (class: TesteAutobox, method: main signature: ([Ljava/lang/String;)V) Expecting to find object/array on stack

Resolvi dessa forma:

Double n = new Double(1);
Double m = new Double(2);
m = m.doubleValue() - n.doubleValue();

Alguém sabe porque acontece isso?

Engraçado… o AutoBox deveria funcionar normalmente…

Se estiver utilizando o Eclipse verifique se ele não está utilizando uma outra jdk…

Atn.
Dennys Fredericci
http://www.dennys.eti.br
Sun Certified Java Programmer

N

Estou tendo um problema que lança a mesma exceção que a sua.

Estou utilizando o java 1.5.0_04 e tentei com a 1.5.0_01.

O erro é o seguinte:

o método está implementado dessa maneira:

protected void zag() {

        AbstractTree temp = left;
        left = right;
        right = left.right;
        left.right = left.left;
        left.left = temp;

        Object tempChave = key;
        key = left.key;
        left.key = tempChave;
    }

Esse código foi tirado do livro, e está identico a projetos já entregue ao professor, cujo trabalhos funcionaram. O problema do código é quando tento rodar a linha left.left = temp;

Quando comento dá certo.

Alguém pode explicar e/ou sugerir algo?

Criado 11 de fevereiro de 2005
Ultima resposta 28 de jul. de 2005
Respostas 4
Participantes 4