在给Constructor加入泛型后,后面通过反射得到的对象后是不需要强转的,因为实力话出来的对象肯定是
泛型类对象,所以就不用了呗.
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
如果通过反射实例化对象(构造有参数的),要先通过getConstructor()方法,指定参数类型.然后再newInstance()方法中添加参数.比如有个Person类,里面有name,age两个属性,构造里面也需要赋值,那么就应该是
Constructor constructor = clazz.getConstructor(String.class, int.class);
Person p = (Person)constructor.newInstance("name",0);
重载后的构造函数,是通过getConstructor参数类型来匹配的,只有匹配了参数类型,才能进行传参.这样就区分了是哪个构造函数了.
语言组织能力有限,你能读懂最好...读不懂我也没办法...语文不好...
|