En C# que pueda hacer realidad esto:método genérico en Java sin discusión genérica
//This is C#
static T SomeMethod<T>() where T:new()
{
Console.WriteLine("Typeof T: "+typeof(T));
return new T();
}
//And call the method here
SomeMethod<SomeClassName>();
Pero por alguna razón no puedo conseguir que funcione en Java.
Lo que quiero hacer es crear un método estático en una superclase para que las subclases se conviertan a XML.
//This is Java, but doesn't work
public static T fromXml<T>(String xml) {
try {
JAXBContext context = JAXBContext.newInstance(T.class);
Unmarshaller um = context.createUnmarshaller();
return (T)um.unmarshal(new StringReader(xml));
} catch (JAXBException je) {
throw new RuntimeException("Error interpreting XML response", je);
}
}
//Also the call doesn't work...
fromXml<SomeSubObject>("<xml/>");
ni siquiera compilará ... No se puede escribir T.class – pgras
No fue mi intención escribir T.class en el método. Dije como un argumnet. Y la función de llamada puede no (o puede haber pasado como una argumnet). –
La nueva instancia (T.class) era una copia y pega que no vi. Todavía la pregunta parece ser sobre cómo escribir un método genérico. –