Ayuda por favor.
Estoy utilizando reflectividad en mi programa, pero me da una excepcion cuando intento llamar al constructor de la clase, el caso es que todo mi programa esta dentro de un proyecto: package biblioteca;
Probe en otro proyecto donde no tengo el package y me funciona, ¿Tiene algo que ver el package con que me funcione o no?
Por si no tiene nada que ver os dejo mi codigo fuente de donde me da el error haber si alguno me podeis ayudar, porque ya probe muchas cosas y no me funciona, igual es una tonteria el error, pero no soy capaz de encontrarlo.
___________________________________________________
El error me lo da al hacer:
clase = Class.forName(IdElementoActual);
___________________________________________________
El codigo fuente del metodo es:
public boolean inicioElemento(String idElemento){
Field campo, campos[];
Object[] objectparam;
Method metodo;
campoEncontrado = false;
if ((idElemento.compareToIgnoreCase("Basedatos") == 0) && (!BaseDatos)){
IdElementoActual = idElemento;
BaseDatos = true;
return true;
}
else
if ((idElemento.compareToIgnoreCase("Tabla") == 0) && (BaseDatos) && (!Tabla)){
IdElementoActual = idElemento;
Tabla = true;
return true;
}
else
if ((BaseDatos) && (Tabla) && (!Bobjeto)){
IdElementoActual = idElemento;
clase= null;
try {
clase = Class.forName(IdElementoActual);
}catch (Exception e) {
System.out.println("Problemas al buscar la clase");
Bobjeto = false;
return false;
}
Constructor constructores[] = clase.getDeclaredConstructors();
int i = 0;
while (i <= constructores.length) {
System.out.println("Constructor " + i + " = " + constructores[i]);
if ( (constructores[i].getParameterTypes()).length == 0)
break;
i++;
}
objeto= null;
try {
objeto = constructores[i].newInstance(null);
}catch (Exception e) {
System.out.println("Objeto no creado");
Bobjeto = false;
return false;
}
TipoObjeto = IdElementoActual;
Atributo = "";
Bobjeto = true;
return true;
}
else
if ((BaseDatos) && (Tabla) && (Bobjeto) && (idElemento != Atributo)){
try {
clase = Class.forName(TipoObjeto);
}catch (Exception e) {
System.out.println("Problemas buscar la clase");
}
campos = clase.getFields();
for (int i=0; i < campos.length; i++) {
if (campos[i].getName().compareTo(idElemento)==0)
campoEncontrado = true;
}
if (campoEncontrado){
Atributo = idElemento;
return true;
}
else
return false;
}
else
{
GestorErrores.Mostrar_Error(16);
return false;
}
}
Muchas gracias.
Probe en otro proyecto donde no tengo el package y me funciona, ¿Tiene algo que ver el package con que me funcione o no?
Por si no tiene nada que ver os dejo mi codigo fuente de donde me da el error haber si alguno me podeis ayudar, porque ya probe muchas cosas y no me funciona, igual es una tonteria el error, pero no soy capaz de encontrarlo.
___________________________________________________
El error me lo da al hacer:
clase = Class.forName(IdElementoActual);
___________________________________________________
El codigo fuente del metodo es:
public boolean inicioElemento(String idElemento){
Field campo, campos[];
Object[] objectparam;
Method metodo;
campoEncontrado = false;
if ((idElemento.compareToIgnoreCase("Basedatos") == 0) && (!BaseDatos)){
IdElementoActual = idElemento;
BaseDatos = true;
return true;
}
else
if ((idElemento.compareToIgnoreCase("Tabla") == 0) && (BaseDatos) && (!Tabla)){
IdElementoActual = idElemento;
Tabla = true;
return true;
}
else
if ((BaseDatos) && (Tabla) && (!Bobjeto)){
IdElementoActual = idElemento;
clase= null;
try {
clase = Class.forName(IdElementoActual);
}catch (Exception e) {
System.out.println("Problemas al buscar la clase");
Bobjeto = false;
return false;
}
Constructor constructores[] = clase.getDeclaredConstructors();
int i = 0;
while (i <= constructores.length) {
System.out.println("Constructor " + i + " = " + constructores[i]);
if ( (constructores[i].getParameterTypes()).length == 0)
break;
i++;
}
objeto= null;
try {
objeto = constructores[i].newInstance(null);
}catch (Exception e) {
System.out.println("Objeto no creado");
Bobjeto = false;
return false;
}
TipoObjeto = IdElementoActual;
Atributo = "";
Bobjeto = true;
return true;
}
else
if ((BaseDatos) && (Tabla) && (Bobjeto) && (idElemento != Atributo)){
try {
clase = Class.forName(TipoObjeto);
}catch (Exception e) {
System.out.println("Problemas buscar la clase");
}
campos = clase.getFields();
for (int i=0; i < campos.length; i++) {
if (campos[i].getName().compareTo(idElemento)==0)
campoEncontrado = true;
}
if (campoEncontrado){
Atributo = idElemento;
return true;
}
else
return false;
}
else
{
GestorErrores.Mostrar_Error(16);
return false;
}
}
Muchas gracias.