1.直接new一个对象
//直接new对象
Users user = new Users();
通过反射创建对象的三种方法
2.通过反射获取到class,然后通过class.newInstance方法获得对象
//通过当前对象的路径获取class,然后通过class.newInstance方法创建对象
try {
Class clazz = Class.forName("com.wf.dbutils.Users");
Object us = clazz.newInstance();
if(us instanceof Users) {
System.out.println("is users");
}
} catch (Exception e) {
}
3.直接通过类名.class得到class,然后通过class.newInstance方法获得对象
//直接通过类名.class得到class,然后通过class.newInstance方法获得对象
Class<Users> clazz = Users.class;
try {
Users users = clazz.newInstance();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
4.通过对象.getClass方法获取到class对象
//通过对象.getClass方法获取到class对象
Object object = user.getClass();
//通过得到class类反射获取到类中所有的属性以及方法
try {
Class clazz1 = Class.forName("com.wf.dbutils.Users");
java.lang.reflect.Field[] fields = clazz1.getDeclaredFields();
for (Field field : fields) {
System.out.println("通过反射获取到类中所有的属性:"+field.getName());
}
Method[] clazz2 = clazz1.getMethods();
for (Method method : clazz2) {
System.out.println("通过反射获取到类中所有的方法:"+method.getName());
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}