I get this error after trying to debug with a breakpoint in the main method of "Principal" class:
ClassNotFoundException(Throwable). <init>(String, Throwable) line: 286
Source not found.
When I run my programm i get this error:
Exception in thread "main" java.lang.NullPointerException
at Ejercicio01.Indice.ordenar(Principal.java:144)
at Ejercicio01.Indice.<init>(Principal.java:122)
at Ejercicio01.Principal.main(Principal.java:64)
I run the debugger, to check why i get these error, then the debugger error, at first time I press "f5" keystroke
import java.util.Vector; public class Principal { public static void main(String[] args) throws ClassNotFoundException{ Vector<Producto> v = new Vector<Producto>(); /**BREAKPOINT HERE*/ Producto p1 = new Producto(); Producto p2 = new Producto(); Producto p3 = new Producto(); Producto p4 = new Producto(); Producto p5 = new Producto(); /******************************************/ /** Se introducen los valores: */ /******************************************/ p1.setNombre("Gorro"); p1.setPrecio(10); p1.setReferencia(1); p2.setNombre("Bañador"); p2.setPrecio(40); p2.setReferencia(2); p3.setNombre("Gafas"); p3.setPrecio(20); p3.setReferencia(3); p4.setNombre("Aletas"); p4.setPrecio(30); p4.setReferencia(4); p5.setNombre("Toalla"); p5.setPrecio(10); p5.setReferencia(5); /******************************************/ //Se añaden los productos v.add(p1); v.add(p2); v.add(p3); v.add(p4); v.add(p5); //Instanciación de un Indice con criterio de ordenación "referencia" Indice indice = new Indice(v, "referencia"); //Comprobación de los productos albergados for(int i=0; i<0 ;i++) System.out.println(indice.getProductos().elementAt(i).getNombre()); } } class Producto { private String nombre; private float precio; private int referencia; //Constructor valores vacíos. Producto(){ this.nombre = ""; this.precio = 0; this.referencia = 0; } //Constructor valores a conveniencia. Producto(String nombre, float precio, int referencia){ this.nombre = nombre; this.precio = precio; this.referencia = referencia; } //Getters: public String getNombre(){ return this.nombre; } public float getPrecio(){ return this.precio; } public int getReferencia(){ return this.referencia; } //Setters: public void setNombre(String nombre){ this.nombre = nombre; } public void setPrecio(float precio){ this.precio = precio; } public void setReferencia(int referencia){ this.referencia = referencia; } } class Indice { private Vector<Producto> productos; private String criterio; Indice(Vector<Producto> productos, String criterio){ this.criterio = criterio; //Se ordena según el criterio. ordenar(criterio); } public Vector<Producto> getProductos(){ return this.productos; } public String getCriterio(){ return criterio; } public void ordenar(String criterio){ //Ordenar por precio if(criterio.equals("precio")){ for(int i=0; i<this.productos.size(); i++){ for(int j=0; i<this.productos.size(); j++){ if(this.productos.elementAt(i).getPrecio() < this.productos.elementAt(j).getPrecio()) this.productos.set(i, this.productos.elementAt(j)); } } } //Ordenar por referencia else if(criterio.equals("referencia")){ for(int i=0; i<this.productos.size(); i++){ for(int j=0; i<this.productos.size(); j++){ if(this.productos.elementAt(i).getPrecio() < this.productos.elementAt(j).getPrecio()) this.productos.set(i, this.productos.elementAt(j)); } } } else System.err.println("No se introdujo un criterio de ordenación válido."); } public void insertar(Producto nuevo){ //Primero se inserta el nuevo producto productos.addElement(nuevo); //Ahora se vuelve a ordenar la lista ordenar(this.criterio); } //Devuelve un vector con todos los productos que contengan el nombre pasado como argumento public Vector<Producto> buscar(String nombre){ Vector<Producto> v = new Vector<Producto>(); //Se recorre todo el vector de productos en busca de los que tengan el nombre pasado como argumento. for(int i = 0; i<productos.size() ;i++) if(this.productos.elementAt(i).getNombre().equals(nombre)) v.add(this.productos.elementAt(i)); return v; } }
--- Update ---
I had 3 class in the same package in different files. But i tried making a single file, but still that error.
--- Update ---
When I place a breakpoint at the end of my main method, I am able to debugg, and it goes directly to the line that make the error.
Don't understand why placing breakpoint at the start It occurs the error that i told you before.