Java - Hashtable

 
Vista:

Hashtable

Publicado por Fernando (12 intervenciones) el 22/08/2003 13:25:51
Hola a todos, ahí va mi problema.
Tengo una tabla hash en la que he metido una serie de objetos de una determinada clase hecha por mi. El problema es que el método get de la tabla Hash me devuelve una referencia a Object, no al tipo de objeto concreto que yo introduje (llamado Proceso). Lo que necesito es hacer una especie de "cast" pero no sé cómo. He intentado:
Proceso miproceso;
miproceso=tabla.get(pid);
pero me dice que los tipos son incompatibles (Object -- Proceso)

Agradecería cualquier tipo de ayuda

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Hashtable

Publicado por chuidiang (532 intervenciones) el 22/08/2003 14:17:29
Tienes que hacer un "cast" a tu clase

Proceso miproceso;
miproceso = (Proceso) tabla.get (pid);

Aqui pueden pasar dos cosas:

- Si el object que obtienes con el get es realmente un Proceso, no hay problema

- Si no lo es, saltara una excepcion ClassCastException (creo que se llama asi). Puedes capturarla para evitar que se te caiga el programa. Otra opcion es comprobar si realmente es un Proceso antes de hacer el cast

Proceso miproceso;
Object objeto = tabla.get (pid);
if (objeto instanceof Proceso)
miproceso = (Proceso)objeto;

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hashtable

Publicado por gothmog (25 intervenciones) el 22/08/2003 14:18:32
El cast en java se hace anteponiendo (Clase) a la instruccion. Algo asi:

miproceso=(Proceso)tabla.get(pid);

Espero que te valga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

GRACIAS A LOS

Publicado por Fernando (12 intervenciones) el 22/08/2003 21:59:27
Muchas gracias, en el fondo es como en C ... pero sin el *

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:GRACIAS A LOS

Publicado por chuidiang (532 intervenciones) el 23/08/2003 00:11:33
Es curioso que en java dicen que no hay punteros cuando en realidad quieren decir que no hay *
Si sabes C, te aclararas mucho con java si te imaginas que absolutamente todas las variables son punteros, excepto las de tipos primitivos.
Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar