如何创建T类?
我需要绑定来自对象T的一些Windows Communication Foundation(WCF)XML。
我可以毫无错误地执行此操作:
ArrayList<T> list = new ArrayList<T>();
这是我的功能:
public static <T> ArrayList<T> GetListFromXml(String url,String element)
如何获得:T obj =?
答案 0 :(得分:3)
由于编译器的type erasure,这是不可能的。如果您在调用方具有默认构造函数的具体类型,则以下操作可能有效:
public static <T> ArrayList<T> GetListFromXml(String url,String element, Class<? extends T> type) {
T obj = type.newInstance();
...
}
如果需要将参数传递给构造函数,则必须通过getConstructor(parameter type 1, ...)
从类中获取它(您需要处理此处未显示的异常):
MyParamType1 param1 = ...;
MyParamType2 param2 = ...;
Constructor<T> cons = type.getConstructor(MyParamType1.class, MyParamType2.class);
T obj = const.newInstance(param1, param2);