Equivalente a void *

Aldarion
18 de Diciembre del 2004
Soy nuevo en Java y tengo que hacer varios programas que utilicen datos genéricos. Hasta ahora lo hacía en ANSI C con punteros void *, donde guardaba cualquier dato posible gracias a malloc y al casting.

¿Cuál sería el método equivalente para hacer ésto en Java?

Jes?eyes
18 de Diciembre del 2004
La jerarquia de clases en Java tienen una raiz en común: java.lang.Object; todas las clases descienden de Object y por lo tanto puedes usar Object como tu referencia generica.
Object x = "Una cadena"; //Las cadenas son objetos de java.langString
String s = (String)x;
Integer i = (Integer)x; //Error, se genera una excepción

Sin embargo tal vez desees usar la nueva sintaxis que permite usar genericos en Java, al estilo de Ada, o muy en cierta forma, C++. Un ejemplo:

class Prueba<T> {
private T dato;
public void setDato(T dato) {
this.dato = dato;
}
public T getDato() {
return this.dato;
}
}

Prueba laPrueba<String> = new Prueba<String>();
laPrueba.setDato("Una cadena");
String x = laPrueba.getDato(); //sin casting

Claro que para esto debes usar Java 5.0

Jesús

Aldarion
18 de Diciembre del 2004
Muchas gracias por tu completa y ¡rápida! respuesta.