Class<> cls=ClassforName(className);//通过类的名称反射类
Object obj=clsnewInstance();//对象实例化
Field field=clsgetField(fieldName);//这个对应的是属性
fieldValue=fieldget(obj);//这个就是属性的值
for (int i = 0; i < fieldslength; i++) {
Field field = fields[i];
String fieldName = fieldgetName();
Systemoutprintln("name====="+fieldName);
String firstLetter = fieldNamesubstring(0, 1)toUpperCase();
// 获得和属性对应的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldNamesubstring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = classTypegetMethod(getMethodName, new Class[]{});
// 调用原对象的getXXX()方法
Object value = getMethodinvoke(object, new Object[]{});
Systemoutprintln("value===="+value);
}
JavalangClass
getDeclaredFields()
返回 Field 对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段。
JavalangreflectField
getName()
返回此 Field 对象表示的字段的名称。
getGenericType()
返回一个 Type 对象,它表示此 Field 对象所表示字段的声明类型。
以上是jdk里面的一些用法,就是用你想要获取对象的属性得到它的class 然后调用 getDeclaredFields()就可以得到字段数组了。
然后再用下面的方法就可以得到属性名,类型这一些。
很简单,要想实现现复杂的功能就再找一下api 找出相应的方法。
getDeclaredField()方法可以获取所有的 成员变量,包括public、private、protected、default修饰的。 getField()只能获得public修饰的成员变量。 比如:private String name; 这个成员变量,如果你用getField()就无法获取,用 getDeclaredFiel
以上就是关于java怎么通过反射得到属性的类型全部的内容,包括:java怎么通过反射得到属性的类型、如何利用java反射顺序的从一个java类中得到其中定义的成员变量名或者方法、如何利用java的反射机制动态的取得对象的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)