首页 > 代码库 > Java反射
Java反射
一、反射机制有关的类大多在java.lang.reflect包中。
常用类:
java.lang.Class<T> 类类型
java.lang.reflect.Method 方法类型
java.lang.reflect.Field 字段类型
二、常用方法:
获得类的类类型:
①
Class cla1=String.class;Class cla2=UserEntity.class;②
try { Class cla=Class.forName("UserEntity");} catch (ClassNotFoundException e1) { e1.printStackTrace();}③
Class clazz = obj.getClass ();根据类名创建类的对象:
String className = "com.xyz.entity.Car "; Object obj = Class.forName (className ).newInstance();获取方法:使用Class类中的方法:public Method getMethod(String name, Class<?>... parameterTypes);//获取类的指定方法。第一个参数:方法名;第二个参数:方法中参数的类型public Method[] getMethods();//获取类的全部方法示例:
Method method = clazz.getMethod("start" );执行方法:
method.invoke(obj);获得类中的字段:
public Field getDeclaredField(String name);public Field[] getDeclaredFields();//Field类中String fieldName=field.getName();//获得字段的属性名Class fieldType=field.getType();//获得字段的属性值String typeStr=fieldType.toString();//结果:class java.lang.String还有(下面这两个还没用过):
public Field getField(String name);public Field[] getFields();获得类的属性值:
Field类中的方法:
public Object get(Object obj);使用示例:
TestEntity testEntity = new TestEntity();Field[] fds = Class.forName("com.xyz.entity.TestEntity").getDeclaredFields();for(int i=0;i<fds.length;i++){ System.out.println(fds[i].get(testEntity));}
三、在项目中的应用
如:java反射执行实体类中的set/get方法。例子:java反射执行pojo中的set/get方法
待续……
Java反射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。