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());
}
}
}