elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Insertar elementos a una tabla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Insertar elementos a una tabla  (Leído 2,839 veces)
sMARIO

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Insertar elementos a una tabla
« en: 20 Mayo 2014, 00:22 am »

Buenas, soy principiante en Java aunque tengo conocimientos en C, pero me estoy comiendo mucho la cabeza en una cosa que debería de ser simple...

Si tengo un constructor que me hace tal que así:

Código:
   private RegistroDeTraduccionInterfaz [] tabla = null;
    .........
    .........
    .........

 public Nat( String direccionExterna ) throws OperacionNoPermitidaExcepcion
    {
tabla = new RegistroDeTraduccionInterfaz[ 10000 ]
        .........
        .........
        .........
    }

Por qué luego me salta NullPointerException al intentar insertar elementos a la tabla?

Código:
 public void insertarEntradaEnTabla ( RegistroDeTraduccionInterfaz entrada ) throws OperacionNoPermitidaExcepcion
{
this.tabla[0] = entrada;
}

He probado tanto eso como esto:
Código:
this.tabla[0] = new RegistroDeTraduccion(istPrivado,istPublico);	

Pero en ambos casos me salta esa excepción y no entiendo que estoy haciendo mal...

PD:
Si pongo un try/catch con NullPointerException consigo que al menos siga la ejecución, pero quiero solucionarlo y que no llegue a saltar, ya que con esto la tabla acaba vacía igualmente.


« Última modificación: 20 Mayo 2014, 00:52 am por sMARIO » En línea

Chuidiang

Desconectado Desconectado

Mensajes: 161



Ver Perfil WWW
Re: Insertar elementos a una tabla
« Respuesta #1 en: 20 Mayo 2014, 07:55 am »

Hola:

En el código que estás haciendo no hay nada mal hasta donde puede verse.

Quizás no se esté ejecutando en el orden correcto : debe llamarse a Nat(...) que tiene pinta de ser el constructor de la clase antes de llamar a insertarEntradaEnTabla(...) que imagino es un método de la misma clase Nat.

Un posible error que suele ser habitual en gente que empieza es que declaran sin querer dos variables con el mismo nombre, inicializando una y usando otra. En tu caso, podrías tener ese error si has puesto "RegistroDeTraduccionInterfaz [] tabla" en algún otro sitio aparte del que muestras en el código, ya que estarías declarando otra variable con el mismo nombre.

Se bueno.


En línea

sMARIO

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Insertar elementos a una tabla
« Respuesta #2 en: 20 Mayo 2014, 11:19 am »

Hola:

En el código que estás haciendo no hay nada mal hasta donde puede verse.

Quizás no se esté ejecutando en el orden correcto : debe llamarse a Nat(...) que tiene pinta de ser el constructor de la clase antes de llamar a insertarEntradaEnTabla(...) que imagino es un método de la misma clase Nat.

Un posible error que suele ser habitual en gente que empieza es que declaran sin querer dos variables con el mismo nombre, inicializando una y usando otra. En tu caso, podrías tener ese error si has puesto "RegistroDeTraduccionInterfaz [] tabla" en algún otro sitio aparte del que muestras en el código, ya que estarías declarando otra variable con el mismo nombre.

Se bueno.

Ya encontré el fallo, efectivamente lo que he puesto está bien, el error era que en el programa principal justo después de crear la tabla se invocaba una clase que vaciaba esta tabla y dentro de esta clase lo único que había era un this.tabla = null
Se me olvidó poner también lo de tabla = new RegistroDeTraduccionInterfaz[ 10000 ]

El problema que tengo ahora es el siguiente:

Código:
 IstInterfaz Publico = buscaIstPrivado(paquete.getIstOrigen());		    
    paquete.getIstOrigen().setDireccion(Publico.getDireccion());
    paquete.getIstOrigen().setPuerto(Publico.getPuerto());

Teniendo en cuenta que buscaIstPrivado devuelve un IstInterfaz y crea la primera entrada en la tabla (tabla[0]) por que cuando hago las dos líneas siguientes, aparte de afectar a "paquete" afecta a la tabla?
Quiero decir, si justo después de IstInterfaz Publico = buscaIstPrivado (paquete.getIstOrigen()); hago System.out.println(tabla[0].getIstPrivado().getDireccion()); me aparece una dirección llamemosle A. Bien, pues si este print lo hago tras la última sentencia, la dirección es diferente.

Las clases creo que por el nombre se entiende lo que hacen, pero lo pongo:
getIstOrigen() --> retorna el Ist
setDireccion(InetAddress) --> cambia la dirección
setPuerto(int) --> cambia el puerto

paquete es del mismo tipo que la tabla --> RegistroDeTraduccionInterfaz
En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Insertar elementos a una tabla
« Respuesta #3 en: 22 Mayo 2014, 21:17 pm »

Es posible que tanto tabla[0].getIstPrivado() como paquete.getIstOrigen() hagan referencia al mismo objeto, y que ambos se modifiquen si se modifica uno. Al menos eso creo :S
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
puntoBat

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Insertar elementos a una tabla
« Respuesta #4 en: 23 Mayo 2014, 13:55 pm »

Acabo de poner una duda que tengo sobre el jTable,

http://foro.elhacker.net/java/jtable_y_regitros_de_bases_de_datos-t415178.0.html


Quizas pueda resultarte util algo.

Luego el objeto filas se lo pasas al DefaultTableModel y este al setmodel y a funcionar
En línea

sMARIO

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Insertar elementos a una tabla
« Respuesta #5 en: 23 Mayo 2014, 17:12 pm »

Es posible que tanto tabla[0].getIstPrivado() como paquete.getIstOrigen() hagan referencia al mismo objeto, y que ambos se modifiquen si se modifica uno. Al menos eso creo :S
Si, este era el fallo, ya conseguí solucionarlo, muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python]Ir añadiendo elementos a una tabla « 1 2 »
Scripting
Debci 10 6,312 Último mensaje 2 Mayo 2010, 00:53 am
por leogtz
Ayuda urgente en visula studio al añadir elementos a mi tabla en c# asp.net
.NET (C#, VB.NET, ASP)
Ila26 1 2,182 Último mensaje 1 Marzo 2014, 20:11 pm
por Eleкtro
Php Insertar Objetos de Arrays en Tabla de Mysql
Desarrollo Web
Slikp 2 2,261 Último mensaje 5 Octubre 2016, 03:47 am
por Slikp
Se añaden oficialmente cuatro nuevos elementos a la Tabla Periódica
Noticias
wolfbcn 0 1,766 Último mensaje 2 Diciembre 2016, 02:04 am
por wolfbcn
Insertar datos a una tabla al redirigirse
PHP
SrTrp 4 2,820 Último mensaje 2 Febrero 2017, 23:47 pm
por SrTrp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines