Problema em clonar um tipo abstrato

2 respostas
D

Estou tentando copiar um arranjo de um tipo abstrato que eu defini, mas ao tentar fazer isso ocorre o erro NullPointerException.

Meu tipo abstrato é definido da seguinte maneira:
public class TipoAbstrato 
{
   public String ChPrim, ChSec;
       
   //cria nova instancia do tipo. É colocado "" em cada um dos campo para facilitar a concatenaçao;
   //construtor Simples
   public TipoAbstrato()
   {
      this (null,null);
   }       
          
   
   public TipoAbstrato(String a, String b)
  {
    ChPrim=a;
    ChSec=b;
  }
   
}
Estou utilizando para copiar o procidemento clona, que é mostrado abaixo junto com um programa teste
public class teste 
{  
   
    
    public static void main(String[] args) 
    {
       TipoAbstrato[] reg1=new TipoAbstrato[2];
       reg1[0].ChPrim="a";
       reg1[0].ChSec="b";
       reg1[1].ChPrim="c";
       reg1[1].ChSec="d";
       
       TipoAbstrato[] reg2=clona(reg1);       
       
    }
    
    
    public static TipoAbstrato[]clona(TipoAbstrato[] entrada)
    {
      TipoAbstrato[]retorno=new TipoAbstrato[entrada.length];
      for(int i=0; i<entrada.length;i++)
      {
          retorno[i].ChPrim=entrada[i].ChPrim;
          retorno[i].ChSec=entrada[i].ChSec;
      }
      return retorno;
    }
    
}

Alguem pode me explicar o que estou fazendo de errado? Valeu.

2 Respostas

J

ola, onde exatamente esta dando o erro? em que linha? isso ajudaria bastante…
outra coisa, onde voce faz isso:

public TipoAbstrato()
   {
      this (null,null);
   }

seria bom voce inicializar as Strings, em vez de deixa-las nulas:

public TipoAbstrato()
   {
      ChPrim = "";
      ChSec = "";
   }

flw

D

javaAdicted obeigado pela ajuda, mas já consegui resolver o problema: estava faltando iniciar o arranjo de destino, pois o TipoAbstrato não possui um construtor para arranjo. De qualquer maneira, obrigado e irei modificar o construtor, como você sugeriu.

Criado 28 de maio de 2005
Ultima resposta 29 de mai. de 2005
Respostas 2
Participantes 2