java怎么通过反射得到属性的类型

java怎么通过反射得到属性的类型,第1张

            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的反射机制动态的取得对象的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9569819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存