[RESOLVIDO] Erro indeterminado

3 respostas
Onimatsu
Boa noite rapaziada. Meu código está com um erro que eu não consigo tratar aparentemente quando vai adicionar na lista, vejam a linha 20. No console exibe:
Exception in thread "main" java.lang.VerifyError: (class: extras02/Automovel, method: <init> signature: (Ljava/lang/String;Ljava/lang/String;I)V) Constructor must call super() or this()
        at extras02.Ex12_arraylist.main(Ex12_arraylist.java:20)
Java Result: 1
O que eu fiz:
/*
*/
package extras02;

import java.text.ParseException;
import java.util.Date;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Ex12_arraylist {

    protected static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

    public static void main(String[] args) {
        ArrayList<Automovel> lista = new ArrayList<Automovel>();

        try {
            lista.add(new Automovel("MODELO1", sdf.parse("15/11/2012")));
            lista.add(new Automovel("MODELO2", sdf.parse("05/06/1970")));
            lista.add(new Automovel("MODELO3", sdf.parse("18/12/2009")));
        } catch (ParseException e) {
        }

        Ex12_arraylist ex = new Ex12_arraylist();
        ArrayList<Automovel> lista2;

        try {
            lista2 = ex.menosDe10(lista);
            for (int i = 0; i < lista2.size(); i++) {
                System.out.println(lista2.get(i));
            }
        } catch (Exception e) {
        }
    }

    private ArrayList<Automovel> menosDe10(ArrayList<Automovel> lista) throws NullPointerException {
        ArrayList<Automovel> temp = new ArrayList<Automovel>();
        GregorianCalendar gc = new GregorianCalendar();

        for (Automovel aux : lista) {
            gc.setTime(aux.getAno());
            if (gc.get(Calendar.YEAR) >= 2002) {
                temp.add(aux);
            }
        }
        return temp;
    }
}

class Automovel {

    private String modelo;
    private Date ano;

    public Automovel(String modelo, Date ano) {
        this.modelo = modelo;
        this.ano = ano;
    }

    public Date getAno() {
        return this.ano;
    }

    @Override
    public String toString() {
        return this.modelo + "\n" + Ex12_arraylist.sdf.format(this.ano) + "\n";
    }
}
Alguém sabe o que está errado? OBS: O exercício exige duas classes no mesmo .java

3 Respostas

matheuslmota

Estranho.
Eu executei seu programa aqui e funcionou corretamente. Isso tá me parecendo algum problema com o JAva que está instalado na sua máquina. É que esse erro normalmente quer dizer que você está referenciando alguma coisa que não está direito no seu Runtime. Por exemplo, se você compilar seu código com uma versão do Java e tentar rodar em uma máquina com uma versão diferente do JAva, pode ocorrer esse erro.

Onimatsu

Então, é estranho mesmo.
Eu fiz um 6 exercícios antes desse e foram todos do mesmo principio e funcionaram, quando eu fiz esse último os outros exercícios que estão no mesmo pacote começaram a dar o mesmo erro.
Mas isso foi de uma hora para outra, não instalei nada nem mudei de computador simplesmente começou com esse erro, o pior é que não para nem mesmo se eu mudar de pacote o .java e a única ligação que têm com os outros exercícios e o pacote.

Onimatsu

Descobri o motivo, a classe Automovel tem o mesmo nome em exercícios diferentes uma para cada .java aí eu renomei para Automovel_A, Automovel_B, etc.
Obrigado por fazer o teste me fez perceber que o erro não estava no código. Flw!

Criado 25 de novembro de 2012
Ultima resposta 25 de nov. de 2012
Respostas 3
Participantes 2