java泛型对象的实例化

实例化具有无参数构造函数的泛型对象

	//newInstance() method need constructor without parameter
	//Class<T> come form Class.class
	public <T> T getNewObject(Class<T> cls) {
		T t=null;
		try {
			t = cls.newInstance();
		} catch (InstantiationException|IllegalAccessException e) {
			e.printStackTrace();
		}
		return t;
	}

调用

String i =getNewObject(String.class);

这种方法需要泛型类具有一个无参数构造函数

实例化没有无参数构造函数的泛型对象

	//newInstance() method need constructor with parameter
	public <T> T getNewObject(Constructor<T> cls, double d) {
		T t = null;
		try {
			t = cls.newInstance(d);
		} catch (InstantiationException | IllegalAccessException
				| IllegalArgumentException | InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return t;
	}

调用

con = Float.class.getConstructor(double.class);
Float k =getNewObject(con,10.0);

这种方法先确定使用泛型类的哪一个构造函数,再通过该构造函数newInstance实例出来。

通用的实例泛型对象(无需区别是否有无参数构造函数)………………

转载于:https://my.oschina.net/superise/blog/681042