TerraSkilll 12 de mai. de 2016
Você quer/precisa copiar todos os atributos em si?
Por que não cria uma classe Nota, com os atributos Transportadora, Cliente e Produto, e cria um ArrayList de objetos Nota (se é que será necessário) ?
Abraço.
lourencoccc 12 de mai. de 2016
Uma possivel solução seria criar uma classe base “AtributoNota” e usando herança criar as classes “Transportadora”, “Cliente” e “Produto” conforme exemplo abaixo:
Espero ter ajudado, vlw!
Exemplo:
import java.util.ArrayList ;
import java.util.List ;
public class PocList {
class Transportadora extends AtributoNota {
String cnpj ;
public String toString (){
return nome + ", CNPJ " + cnpj ;
}
}
class Cliente extends AtributoNota {
String cpf ;
public String toString (){
return nome + ", CPF " + cpf ;
}
}
class Produto extends AtributoNota {
String codigo ;
public String toString (){
return codigo + " - " + nome ;
}
}
class AtributoNota {
Integer id ;
String nome ;
}
class Nota {
final List < AtributoNota > atributos ;
Nota ( List < AtributoNota > atributos ){
this . atributos = atributos ;
}
}
void imprimir ( Nota nota ){
StringBuilder clientes = new StringBuilder ();
StringBuilder produtos = new StringBuilder ();
StringBuilder tranportadoras = new StringBuilder ();
for ( AtributoNota atributoNota : nota . atributos ){
if ( atributoNota instanceof Cliente ){
clientes . append ( atributoNota . toString ());
produtos . append ( "\n" );
}
if ( atributoNota instanceof Produto ){
produtos . append ( atributoNota . toString ());
produtos . append ( "\n" );
}
if ( atributoNota instanceof Transportadora ){
tranportadoras . append ( atributoNota . toString ());
produtos . append ( "\n" );
}
}
System . out . println ( "--------- Cliente ---------" );
System . out . println ( clientes );
System . out . println ( "--------- Produtos ---------" );
System . out . println ( produtos );
System . out . println ( "--------- Transportadora ---------" );
System . out . println ( tranportadoras );
}
void exemplo1 (){
Nota nota = this . new Nota ( new ArrayList < AtributoNota > ());
List < Transportadora > transportadoras = new ArrayList <> ();
List < Cliente > clientes = new ArrayList <> ();
List < Produto > produtos = new ArrayList <> ();
Transportadora trans = this . new Transportadora ();
trans . cnpj = "789" ;
trans . nome = "Express" ;
Cliente cliente = this . new Cliente ();
cliente . cpf = "016" ;
cliente . nome = "Maria" ;
Produto prod1 = this . new Produto ();
prod1 . id = 1 ;
prod1 . nome = "Notebook" ;
prod1 . codigo = "123" ;
Produto prod2 = this . new Produto ();
prod2 . id = 2 ;
prod2 . nome = "Mouse" ;
prod2 . codigo = "125" ;
transportadoras . add ( trans );
clientes . add ( cliente );
produtos . add ( prod1 );
produtos . add ( prod2 );
nota . atributos . addAll ( transportadoras );
nota . atributos . addAll ( clientes );
nota . atributos . addAll ( produtos );
imprimir ( nota );
}
public static void main ( String [] args ){
new PocList (). exemplo1 ();
}
}
iuribertto 13 de mai. de 2016
Muito obrigado!
Funcionou, aqui.