Buenas noches, perdonad por molestar pero ya estoy algo desesperado, no se si alguien podria echarme una mano, vereis esta clase que os muestro debe llamar a los metodos de una interfaz que esta en otro paquete diferente de blue J, pero siempre que llama a cuaquier metodo de controlador salta el error de java null pointer excepcion, creo que es por algo de no inicializar el controlador, pero tampoco se como inicializarlo
package gestorempresas.cliente;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
//import gestorempresas.empresas.InterfazControladorEmpresas;
import gestorempresas.empresas.*;
//import gestorempresas.*;
/**
* Write a description of class ClienteGestorEmpresas here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ClienteGestorEmpresas
{
static InterfazControladorEmpresas controlador;//creo objeto clase interfaz
/**
* Constructor for objects of class ClienteGestorEmpresas
*/
public static void main(String[] args) {
ClienteGestorEmpresas miObjeto = new ClienteGestorEmpresas();
String opcion="";
String cif ="";
String nombre ="";
String direccion ="";
Scanner in = new Scanner(System.in);
List<Empresa> lista;
do{//bucle infinito, en el switch cuando pulsemos t sale del programa
System.out.println("Menu del cliente: ");
System.out.println("l - listar empresas ");
System.out.println("i - mostrar informacion detallada de una empresa");
System.out.println("c - crear una nueva empresa");
System.out.println("m - modificar datos de una empresa existente");
System.out.println("b - borrar una empresa");
System.out.println("t - terminar");
opcion = in.next();
switch(opcion)
{
case "l":
lista = controlador.recuperarEmpresas();
if (!lista.isEmpty()){
int i;
for(i=0;i<lista.size();i++)//recorro la lista
{
Empresa enterprise = lista.get(i); //obtengo un objeto de tipo empresa de la lista
System.out.println(enterprise.verDescripcionBreve());//iprimo por pantalla datos
}
}
else{
System.out.println("ERROR!!!!!!!!");
}
break;
case "i": System.out.println("Introduzca el Cif de la empresa: ");
cif = in.next();
try {Empresa empresa = controlador.recuperarEmpresa(cif);
System.out.println(empresa.verDescripcionBreve());
}catch(ExcepcionEmpresas e){
System.out.println("Ya existe una empresa con mismo CIF");
}
break;
case "c": System.out.println("Introduzca el cif de la empresa: ");
cif = in.next();
System.out.println("Introduzca el nombre de la empresa: ");
nombre = in.next();
System.out.println("Introduzca la direccion de la empresa: ");
direccion = in.next();
try { controlador.crearEmpresa(cif,nombre,direccion);
}catch(ExcepcionEmpresas e){
System.out.println("Ya existe una empresa con mismo CIF");
}
break;
case "m": System.out.println("Introduzca el CRI de la empresa: ");
cif = in.next();
System.out.println("Introduzca el nombre de la empresa: ");
nombre = in.next();
System.out.println("Introduzca la direccion de la empresa: ");
direccion = in.next();
try { controlador.modificarEmpresa(cif,nombre,direccion);
}catch(ExcepcionEmpresas e){
System.out.println("No hay empresas que coincidan con el valor de CIF introducido");
}
break;
case "b": System.out.println("Introduzca el cif de la empresa");
cif = in.next();
try { controlador.borrarEmpresa(cif);
}catch(ExcepcionEmpresas e){
System.out.println("Ya existe una empresa con mismo CIF");
}
break;
case "t": System.exit(1);
break;
default: System.out.println("La entrada no es correcta.");
}
}while(true);//fin del bucle while-
}
}