Uso de genéricos en código Java de Android

Soy un novato en Java, así que no estoy seguro si esto es posible. Básicamente, necesito des-serializar un archivo en un objeto de un tipo dado. Básicamente el método hará esto:

FileInputStream fis = new FileInputStream(filename); ObjectInputStream in = new ObjectInputStream(fis); MyClass newObject = (MyClass)in.readObject(); in.close(); return newObject; 

Quisiera que este método fuera genérico, por lo tanto puedo decirle qué tipo yo quisiera in.readObject() arrojar su salida en, y volverla.

Espero que esto tenga sentido … de nuevo, probablemente no entendía genéricos correctamente y esto no es realmente posible, o recomendable.

Gracias: D.

No estoy seguro acerca de Android (o cualquier limitación que pueda tener), pero en Java puedes hacer algo como esto:

 public static <T> T getObject(String filename) throws IOException, ClassNotFoundException { FileInputStream fis = new FileInputStream(filename); ObjectInputStream in = new ObjectInputStream(fis); T newObject = (T) in.readObject(); in.close(); return newObject; } 

Y luego llamarlo como

 MyClass myObj = getObject("in.txt"); 

Esto le dará una advertencia de cast sin marcar, ya que el compilador no puede estar seguro de que puede lanzar el objeto recibido al tipo proporcionado, por lo que no es exactamente el tipo seguro. Debe estar seguro de que lo que está recibiendo de la secuencia de entrada realmente se puede transmitir a esa clase, de lo contrario obtendrá una ClassCastException. Puede suprimir la advertencia anotando el método con @SuppressWarnings("unchecked")

Acabo de ver esto ¿Cómo puedo hacer que el método devuelva el tipo genérico? Voy a probar lo siguiente:

 public <T> T deserialiseObject(String filename, Class<T> type) throws StreamCorruptedException, IOException, ClassNotFoundException { FileInputStream fis = new FileInputStream(filename); ObjectInputStream in = new ObjectInputStream(fis); Object newObject = in.readObject(); in.close(); return type.cast(newObject); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.