本文共 2891 字,大约阅读时间需要 9 分钟。
package com.shu.compressphoto.reflect;
* Created by Administrator on 2017/3/14.
public User(String uname, String age, String id) {
public String getUname() {
public void setUname(String uname) {
public void setAge(String age) {
public void setId(String id) {
String path = "com.shu.compressphoto.reflect.User";
Class u1 = Class.forName(path);//方法一:创建Class
Class<User> u2 = User.class;//方法二:创建Class
User u3 = new User();//方法三:创建Class
System.out.println(u3.getClass());
} catch (ClassNotFoundException e) {
class com.shu.compressphoto.reflect.User
class com.shu.compressphoto.reflect.User
class com.shu.compressphoto.reflect.User
三种方法无论怎么创建只有是一种类型的对象,获取到的class都是一样的。
User user2 = new User("张三","23","0001");
System.out.println("对象创建:"+user1.getClass());
System.out.println("对象创建:"+user2.getClass());
对象创建:class com.shu.compressphoto.reflect.User
对象创建:class com.shu.compressphoto.reflect.User
无论构造方法是怎样的,同一种类型创建的的class只有一种。
Class clazz1 = Class.forName(path);//方法一:创建Class
System.out.println(clazz1);
Field uname = clazz1.getField("uname");
Field[] fields = clazz1.getFields();
Field uname1 = clazz1.getDeclaredField("uname");
Field[] declaredFields = clazz1.getDeclaredFields();
public Field getField(String name)根据属性名获取属性 public Field[] getFields() 获取所有public属性
public native Field getDeclaredField(String name)
根据属性名获取属性 public native Field[] getDeclaredFields();
获取所有public属性 uname1=private java.lang.String com.shu.compressphoto.reflect.User.uname
public Method getMethod(String name, Class<?>... parameterTypes)
public Method[] getMethods()
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
public Method[] getDeclaredMethods();
Method getUname = clazz1.getDeclaredMethod("getUname", null);
Method setUname = clazz1.getDeclaredMethod("setUname", String.class);
System.out.println("getUname="+getUname);
System.out.println("setUname="+setUname);
getUname=public java.lang.String com.shu.compressphoto.reflect.User.getUname()
setUname=public void com.shu.compressphoto.reflect.User.setUname(java.lang.String)
public Constructor<T> getConstructor(Class<?>... parameterTypes)
public Constructor<?>[] getConstructors()
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
public Constructor<?>[] getDeclaredConstructors()
转载地址:http://abfgi.baihongyu.com/