Aver si me podeis ayudar con esta práctica.
Tengo que dar de alta unos empleados y tal. Tengo una clase llamada empleados que contiene los datos del empleado con su tipico set y get. Algo asi es el contructor:
Código PHP:
       public Empleados(String codigo, String password, String nombre){
        this.codigo=codigo;
        this.password=password;
        this.nombre=nombre;
    } 
    Código PHP:
    private static ArrayList<Empleados> empleados = new ArrayList<Empleados>();
 
 private static Empleados empleobj;
 
 
    public static boolean altaEmpleados(Empleados empleobj) {
        if (!empleados.contains(empleobj)) {
            empleados.add(empleobj);
            return true;
        } else {
            return false;
        }
 
    }
 
    
    //consulta persona por la posición dentro del ArrayList
    public static Empleados consultaEmpleados(int indice) {
        empleobj = empleados.get(indice);
        return empleobj;
    }
    
    
    //Consulta persona usuario devolucion posicion
    
        public static Empleados consultaPersonaPorUsuario(String usuario) {
        //Comparador para ordenar las personas por su código
                 
        Comparator CodigoComp = new Comparator() {
 
            public int compare(Object o1, Object o2) {
                Empleados e1 = (Empleados) o1;
                Empleados e2 = (Empleados) o2;
                return e1.getCodigo().compareTo(e2.getCodigo());
            }
        };
        //Ordenamos el array
        Collections.sort(empleados, CodigoComp);
        /*//creamos una persona con el dni a buscar
        Comparator NomPerComp = new Comparator() {
 
            public int compare(Object o1, Object o2) {
                Empleados e1 = (Empleados) o1;
                Empleados e2 = (Empleados) o2;
                return e1.getCodigo().compareTo(e2.getCodigo());
            }
        };
        //Ordenamos el array
        Collections.sort(empleados, NomPerComp);*/
        
        //creamos una persona con el nombre a buscar
        Empleados e = new Empleados();
        e.setNombre(usuario);
        int pos = Collections.binarySearch(empleados, e, CodigoComp);
        if (pos >= 0) {
            empleobj = empleados.get(pos);
        } else {
            empleobj = null;
        }
 
        return empleobj;
    }
        
        
    
} 
    Tengo un main de prueba para ver que funciona las cosas:
añado 2 empleados al Arraylist y tal, todo bien pero al usar el metodo de buscar que me devuelve la posicion del empleado me sale este error:
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.compareTo(String.java:1139)
at proyectoextraordinario.UtilEmpleados$2.compare(Uti lEmpleados.java:74)
at java.util.Collections.indexedBinarySearch(Collecti ons.java:377)
at java.util.Collections.binarySearch(Collections.jav a:365)
at proyectoextraordinario.UtilEmpleados.consultaPerso naPorUsuario(UtilEmpleados.java:94)
at proyectoextraordinario.Prueba.main(Prueba.java:55)
Java Result: 1
Lo invoco asi:
System.out.println(UtilEmpleados.consultaPersonaPo rUsuario(us));
Donde us es un objeto empleado.
Que estoy haciendo mal?
 
 



