java泛型对象初始化--java泛型对象能实例化吗T t=new T()



java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型。但注意public class BookManager是不能被反射的,因为擦拭法的缘故。只有在Superclass 或者成员变量(Field.getGenericType())等有函数返回ParameterizedType的时候才能成功反射, 


要么搞个构造函数把参数类型传进去才行



我就写了一个构造函数如下:

	private static  T newTclass(Class clazz) throws InstantiationException, IllegalAccessException{
		T a=clazz.newInstance();
		return a;
		
	}


使用方法:

try {
						T user = newTclass(User.class);					
					} catch (InstantiationException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IllegalAccessException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}


当然 这里的 User.class也可以由上层函数传进来。

你可能感兴趣的:(java)