Java反射理解(四)-- 获取成员变量构造函数信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java反射理解(四)-- 获取成员变量构造函数信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2302字,纯文字阅读大概需要4分钟。
内容图文
![Java反射理解(四)-- 获取成员变量构造函数信息](/upload/InfoBanner/zyjiaocheng/755/283ed39f3f5b4231af2cf006b7a68b3b.jpg)
Java反射理解(四)-- 获取成员变量构造函数信息
步骤
获取成员变量信息:
obj.getClass()
获取类类型对象- 成员变量也是对象,
java.lang.reflect.Field
类中封装了关于成员变量的操作:getFields()
方法获取的是所有的public的成员变量的信息getDeclaredFields()
获取的是该类自己声明的成员变量的信息
getType()
得到成员变量的类型的类类型getName()
得到成员变量的名称
获取成员变量构造函数信息:
obj.getClass()
获取类类型- 构造函数也是对象,
java.lang. Constructor
中封装了构造函数的信息:getConstructors()
获取所有的public的构造函数getDeclaredConstructors()
得到所有的构造函数
getName()
得到构造函数名称getParameterTypes()
获取参数列表类类型
举例
1. 获取成员变量的信息
public class ClassUtil {
/**
* 获取成员变量的信息
* @param obj
*/
public static void printFieldMessage(Object obj) {
Class c = obj.getClass();
/*
* 成员变量也是对象
* java.lang.reflect.Field
* Field类封装了关于成员变量的操作
* getFields()方法获取的是所有的public的成员变量的信息
* getDeclaredFields获取的是该类自己声明的成员变量的信息
*/
//Field[] fs = c.getFields();
Field[] fs = c.getDeclaredFields();
for (Field field : fs) {
//得到成员变量的类型的类类型
Class fieldType = field.getType();
String typeName = fieldType.getName();
//得到成员变量的名称
String fieldName = field.getName();
System.out.println(typeName+" "+fieldName);
}
}
}
测试:
public class ClassDemo4 {
public static void main(String[] args) {
ClassUtil.printFieldMessage("hello");
System.out.println("==========");
ClassUtil.printFieldMessage(new Integer(1));
}
}
2. 获取成员变量构造函数的信息
public class ClassUtil {
/**
* 打印对象的构造函数的信息
* @param obj
*/
public static void printConMessage(Object obj){
Class c = obj.getClass();
/*
* 构造函数也是对象
* java.lang. Constructor中封装了构造函数的信息
* getConstructors获取所有的public的构造函数
* getDeclaredConstructors得到所有的构造函数
*/
//Constructor[] cs = c.getConstructors();
Constructor[] cs = c.getDeclaredConstructors();
for (Constructor constructor : cs) {
System.out.print(constructor.getName()+"(");
//获取构造函数的参数列表--->得到的是参数列表的类类型
Class[] paramTypes = constructor.getParameterTypes();
for (Class class1 : paramTypes) {
System.out.print(class1.getName()+",");
}
System.out.println(")");
}
}
}
测试:
public class ClassDemo5 {
public static void main(String[] args) {
ClassUtil.printConMessage("hello");
ClassUtil.printconMessage(new Integer(1));
}
}
完。
内容总结
以上是互联网集市为您收集整理的Java反射理解(四)-- 获取成员变量构造函数信息全部内容,希望文章能够帮你解决Java反射理解(四)-- 获取成员变量构造函数信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。