• Viernes 8 de Noviembre de 2024, 14:45

Autor Tema:  for-each  (Leído 1428 veces)

lesca

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
for-each
« en: Miércoles 17 de Febrero de 2010, 14:54 »
0
pliss necesito ayuda con este programita el problema se encuentra al final del codigo en el for each
me tira este error: "Exception in thread "main" java.lang.NullPointerException
        at javaeugenio.Main.main(Main.java:119)" y no c q es desde ya gracias poor la ayuda


Código: Java
  1. import java.util.ArrayList;
  2.  
  3.  
  4. public class Main {
  5.  
  6.     public static void main(String[] args) {
  7.         //creo cliente
  8.         Cliente cli1 = new Cliente("eugenio","Borras","monotributista",156);
  9.         Domicilio domi1 = new Domicilio(1859,"25 de mayo");
  10.         Localidad loc1 = new Localidad(1,"Ciudad");
  11.         Pais pais =new Pais(1,"Argentia");
  12.         //asociaciones cliente
  13.         cli1.setRefDomicilio(domi1);
  14.         domi1.setRefLocalidad(loc1);
  15.         loc1.setRefPais(pais);
  16.  
  17.         //creo cliente2
  18.         Cliente cli2 = new Cliente("Alvaro","Borras","monotributista",115);
  19.         Domicilio domi2 = new Domicilio(1680,"Mitre");
  20.         Localidad loc2 = new Localidad(1,"Ciudad");
  21.        
  22.         //asociaciones cliente2
  23.         cli2.setRefDomicilio(domi2);
  24.         domi2.setRefLocalidad(loc2);
  25.         loc2.setRefPais(pais);
  26.  
  27.         //creo empleado
  28.         Empleado empl = new Empleado("Alberto","Cortez","Informatica");
  29.         Domicilio domi3 = new Domicilio(899,"Cobos");
  30.         Localidad loc3 = new Localidad(7,"Dorrego");
  31.         //asociaciones empleado
  32.         empl.setRefDomicilio(domi3);
  33.         domi3.setRefLocalidad(loc3);
  34.         loc3.setRefPais(pais);
  35.  
  36.         //creo proveedor
  37.  
  38.         Proveedor prov = new Proveedor("Fernando","Castillo",55);
  39.         Domicilio domi4 = new Domicilio(44,"Godoy Cruz");
  40.         Localidad loc4 = new Localidad(1,"Ciudad");
  41.  
  42.         //asociaciones proveedor
  43.         prov.setRefDomicilio(domi4);
  44.         domi4.setRefLocalidad(loc4);
  45.         loc4.setRefPais(pais);
  46.  
  47.         //creo articulos
  48.  
  49.         Articulo art1 = new Articulo(756,"RAM Kingston 1Gb",150);
  50.         Articulo art2 = new Articulo(668,"Mouse Optico Genius",45);
  51.         Articulo art3 = new Articulo(32,"Auriculares+Microfono Noga",63);
  52.         Articulo art4 = new Articulo(12,"CD-RW",2.5);
  53.  
  54.  
  55.         //creo factura
  56.  
  57.         Factura fact1 = new Factura(001, "A", "11/12/2009");
  58.         Factura fact2 = new Factura(002, "B", "12/12/2009");
  59.        
  60.  
  61.         //creo detalles
  62.  
  63.         Detalle detalle1 = new Detalle();
  64.         detalle1.setRefArticulo(art1);
  65.         detalle1.setCantidad(4);
  66.         detalle1.setSubtotal(detalle1.calcSubtotal(art1.getPrecio(),detalle1.getCantidad()));
  67.  
  68.         Detalle detalle2 = new Detalle();
  69.         detalle2.setRefArticulo(art2);
  70.         detalle2.setCantidad(6);
  71.         detalle2.setSubtotal(detalle2.calcSubtotal(art1.getPrecio(),detalle2.getCantidad()));
  72.  
  73.         Detalle detalle3 = new Detalle();
  74.         detalle3.setRefArticulo(art3);
  75.         detalle3.setCantidad(2);
  76.         detalle3.setSubtotal(detalle3.calcSubtotal(art1.getPrecio(),detalle3.getCantidad()));
  77.  
  78.         //contenedores de los detalles
  79.         ArrayList deta1 = new ArrayList();
  80.         deta1.add(detalle1);
  81.         deta1.add(detalle3);
  82.  
  83.         ArrayList deta2 = new ArrayList();
  84.         deta2.add(detalle2);
  85.         deta2.add(detalle3);
  86.         //asoocio facura con empleado, cliente 1 y proveedor
  87.         empl.setRefFactura(fact1);
  88.         cli1.setRefFactura(fact1);
  89.         prov.setRefFactura(fact1);
  90.  
  91.         //asoocio facura con empleado , cliente 2 y proveedor
  92.         fact2.setRefPersona(empl);
  93.         fact2.setRefPersona(cli2);
  94.         fact1.setRefPersona(prov);
  95.  
  96.  
  97.         System.out.println(" ---------------------------------------------------");
  98.         System.out.println("|ttFactura cliente 1                  |");
  99.         System.out.println(" ---------------------------------------------------");
  100.         System.out.println("|tTipo: "+cli1.getRefFactura().getTipo()+"ttNº: "+cli1.getRefFactura().getNro());
  101.         System.out.println("|tFecha: "+cli1.getRefFactura().getFecha());
  102.         System.out.println("|tEmpleado: "+empl.getNombre()+" "+empl.getApellido());
  103.         System.out.println("|tCliente: "+cli1.getNombre()+" "+cli1.getApellido());
  104.        
  105.        
  106.         for (Detalle deta : fact1.getRefDetalle()) {
  107.             System.out.println("" + deta.getRefArticulo().getCodigo()+" "+deta.getRefArticulo().getDescripcion());
  108.         }
  109.  
  110.     }
  111.  
  112. }
  113.  

droezva

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: for-each
« Respuesta #1 en: Domingo 21 de Febrero de 2010, 05:06 »
0
Hola.

Bueno a primera vista parece ser que no has relacionado el ArrayList donde guardas los Objetos Tipo Detalle a una Factura,
te falta algo asi como:
Código: Java
  1. fact1.setRefDetalle(deta1);
  2.  
Esto antes de usarlo en el for-each.

En la parte de la Definición de los ArrayList segun la Sintaxis Adecuada se debe indicar el tipo de Elementos que va almacenar,
de la Siguiente forma:
Código: Java
  1. ArrayList<Detalle> deta1 = new ArrayList<Detalle>();
  2.  

Por otra parte te recomendaria que en la parte del for-each  lo manejes de la siguiente forma:
Código: Java
  1. ArrayList<Detalle> detalleFatura = fact1.getRefDetalle();
  2. for (Detalle deta : detalleFatura) {
  3.             System.out.println("" + deta.getRefArticulo().getCodigo()+" "+deta.getRefArticulo().getDescripcion());
  4. }
  5.  

Al parecer el error se da ya que el método getRefDetalle() del Objeto fact1 debe de regresar un Objeto ArrayList pero como no se le ha relacionado ningun Objeto pues esta vacio.

Bueno espero que te sirva. y espero que con esto puedas resolver tu problema.  :)

lesca

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: for-each
« Respuesta #2 en: Miércoles 24 de Febrero de 2010, 03:26 »
0
Me sirvio de muchoo :D muchas gracias amigo

droezva

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: for-each
« Respuesta #3 en: Miércoles 24 de Febrero de 2010, 07:49 »
0
Oyes me da mucho gusto que te sirvió la información. Éxito.

Nos Vemos.. :)