首先建立一個泛型爲Integer的list。隨後利用反射機制使list中存放一個student對象
輔助類 Student
public class Student {
private int id;
private String name;
//getters and setters and toString
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
測試類 :實現該功能
public class Test {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
//獲取並初始化一個student對象,此處使用反射機制來實例化一個student對象
Class obj=Class.forName("com.hy.test.Student");
Student student = (Student)obj.newInstance();
student.setId(2);
student.setName("男");
//初始化一個泛型爲Integer的list並添加兩個元素
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
//利用反射後去list的類型
Class<? extends Object> clazz=list.getClass();
//獲取list的add方法
Method method = clazz.getMethod("add",Object.class);
//調用list的add方法,將student對象存入list中
method.invoke(list, student);
System.out.println(list);
}
}
運行結果:
[1, 2, Student [id=2, name=男]]