Ajuda em Erro Exceptio in thread!

2 respostas
S

Exception in thread "main" java.lang.NullPointerException
at principal.Questao2.main(Questao2.java:30)
alguem poderia me dizer aonde está o erro ja pesquisei e revisei meu cod mais não identifiquei.

segue o codigo

package principal;
import secundario.*;
import java.util.Scanner;

public class Proprietario {
	private int codigo;
	private static int codAux=0;
	private String nome;
	private Imovel meuImovel;
	;

	public Proprietario()
    {
        this.codigo=++codAux;
    }
    public Proprietario(String nome,Imovel imovel)
    {
        this();
        this.nome=nome;
        meuImovel=imovel;
    }
	public String getNome(){
		return nome;
	}
	public void setNome(String nome){
		this.nome=nome;
	}
	public int getCodigo(){
		return codigo;
	}
	
	public void cadastrarImovel(Imovel imovel){
		
		if(imovel!=null){
			Scanner in=new Scanner(System.in);
			int codLocalizacao;
			String descricao;
			float valorUnidade;
			float area;
			String itr;
			String iptu;
			float fatorRural;
			
			System.out.println("\n Entre com os dados do Imovel");
			System.out.println("\n Entre com o codLocalização");
			codLocalizacao=in.nextInt();
			in.nextLine();
			System.out.println("\n Entre com o descrição");
			descricao=in.nextLine();
			System.out.println("\n Entre com o valor da unidade");
			valorUnidade=in.nextFloat();
			System.out.println("\n Entre com a àrea");
			area=in.nextFloat();
			in.nextLine();
			if(imovel instanceof Urbano){
				System.out.println("\n Entre com o iptu");
				iptu=in.nextLine();
				meuImovel=new Urbano(codLocalizacao, descricao, valorUnidade, area, iptu);
			}
			else{
				System.out.println("\n Entre com o itr");
				itr=in.nextLine();
				System.out.println("\n Entre com o fator Rural");
				fatorRural=in.nextFloat();
				meuImovel=new Rural(codLocalizacao, descricao, valorUnidade, area, itr, fatorRural);
			}	
		}
		else{
			  System.out.println( "O proprietario "+ this.nome +" possui o imovel inscrito "+meuImovel.getDescricao() );  
		}
	} 
	 public void listarImovel()
	    {

	        if (meuImovel instanceof Urbano)
	        {
	            System.out.println("\n Codigo de Localizacao: "+ meuImovel.getCodLocalizacao());
	            System.out.println("\n Descricão: "+ meuImovel.getDescricao());
	            System.out.println("\n Area: "+ meuImovel.getArea());
	            System.out.println("\n Valor da Unidade"+ meuImovel.getValorUnidade());
	            System.out.println("\n Iptu: "+ ((Urbano)meuImovel).getIptu());
	        }
	        else
	        {
	            System.out.println("\n Codigo de Localizacao: "+meuImovel.getCodLocalizacao());
	            System.out.println("\n Descricão: "+ meuImovel.getDescricao());
	            System.out.println("\n Area: "+ meuImovel.getArea());
	            System.out.println("\n Valor da Unidade"+ meuImovel.getValorUnidade());
	            System.out.println("\n Itr: "+ ((Rural)meuImovel).getItr());
	            System.out.println("\n fator rural: "+ ((Rural)meuImovel).getFatorRural());
	        }

	    }
	
}

e da minha classe para testar

package principal;
import secundario.*;
import java.util.*;

public class Questao2 {
	public static void main(String[] args) {
		
		Proprietario[] vet=new Proprietario[2];
		Scanner in=new Scanner(System.in);
		String dono;
		Imovel imovel;
		
	try
	   {
		for(int i=0;i < vet.length ;i++){
			System.out.println("Entre com os Dados do Proprietario"+(i+1)+"\n");
			System.out.println("Entre com o nome \n");
			dono=in.nextLine();
			
			if(i<1){
				imovel = new Urbano();
				vet[i] = new Proprietario(dono,imovel);
				
				}
			else{
				imovel=new Rural();
				vet[i]=new Proprietario(dono,imovel);
				
			}
			for(i=0;i < vet.length;i++){
				vet[i].listarImovel();
			}		
		}
	}
    catch(Exception e)
    {
        System.out.println(e.getMessage());
    }
   }		
}

2 Respostas

dreampeppers99
SistemaINf2009:
Exception in thread "main" java.lang.NullPointerException at principal.Questao2.main(Questao2.java:30) alguem poderia me dizer aonde está o erro ja pesquisei e revisei meu cod mais não identifiquei. segue o codigo
package principal;
import secundario.*;
import java.util.*;

public class Questao2 {
	public static void main(String[] args) {
		
		Proprietario[] vet=new Proprietario[2];
		Scanner in=new Scanner(System.in);
		String dono;
		Imovel imovel;
		
	try
	   {
		for(int i=0;i < vet.length ;i++){
			System.out.println("Entre com os Dados do Proprietario"+(i+1)+"\n");
			System.out.println("Entre com o nome \n");
			dono=in.nextLine();
			
			if(i<1){
				imovel = new Urbano();
				vet[i] = new Proprietario(dono,imovel);
				
				}
			else{
				imovel=new Rural();
				vet[i]=new Proprietario(dono,imovel);
				
			}
			for(i=0;i < vet.length;i++){
				vet[i].listarImovel();
			}		
		}
	}
    catch(Exception e)
    {
        System.out.println(e.getMessage());
    }
   }		
}

O que você pode tentar é : Marcar um ponto para debugar o programa na sua classe Questao2. Esse erro é normalmente ocasionado por conta de tentar acessar um membro (método, atributo...) mas o objeto não existe é nulo.

S
package principal;
import secundario.*;
import java.util.*;

public class Questao2 {
	public static void main(String[] args) {
		
		Proprietario[] vet=new Proprietario[4];
		Scanner in=new Scanner(System.in);
		String dono;
		Imovel imovel;
		int i;
		
	
		for(i=0;i < 2;i++){
			System.out.println("Entre com os Dados do Proprietario"+(i+1)+"\n");
			System.out.println("Entre com o nome \n");
			dono=in.nextLine();
			
			if(i<1){
				imovel = new Urbano();
				vet[i] = new Proprietario(dono,imovel);
				vet[i].cadastrarImovel(imovel);
				}
			else{
				imovel=new Rural();
				vet[i]=new Proprietario(dono,imovel);
				vet[i].cadastrarImovel(imovel);
			}
		}
			for(int j=0;j < i;j++){
				vet[j].listarImovel();
			}		
		}
	
   
   }

cpnsegui oerro estava no metodo listar que estava dentro do msm for ,coloquei ele fora e funfo!! :D

Criado 26 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 2
Participantes 2