ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java通过反射获取Object的属性

2020-11-10 08:33:03  阅读:224  来源: 互联网

标签:反射 java getName Object System 获取 cls Class out


`public class ClassUtil {
//获取类的方法、返回值和参数
public void ClassPrintMethodMessage(Object obj){
//获取类类型
Class cls = obj.getClass();
System.out.println("类名:"+cls.getName());
//获取类类型下面所有的方法,包含父类继承过来的方法(只包括public)
Method[] methods = cls.getMethods();
//获取类类型下面所有的方法,只包含自己内部的方法(包含私有)
Method[] decMethods = cls.getDeclaredMethods();
//循环类类型的所有方法
for(int i = 0;i<methods.length;i++){
//获取方法的返回值
Class returnType = methods[i].getReturnType();
System.out.print(returnType.getName()+" ");
//方法名称
System.out.print(methods[i].getName()+" (");
//获取返回值参数
Class[] chars = methods[i].getParameterTypes();
for(Class c:chars){
System.out.print(c.getName()+",");
}
System.out.println(")");
}

    ClassPrintFieldMessage(obj);


}
//获取类的成员变量
public void ClassPrintFieldMessage(Object obj){
    Class cls = obj.getClass();
    //获取类的成员变量,包含继承的父类成员变量

// Field[] fie = cls.getFields();
//获取类的成员变量,不包含继承的父类成员变量
Field[] dlFie = cls.getDeclaredFields();
for (Field f:dlFie) {
//成员变量类型
String type = f.getType().getName();
//成员变量名称
String name = f.getName();
System.out.println(type+" "+name);
}
}
//获取类的构造函数
public void ClassPrintConMessage(Object obj){
//获取类类型
Class cls = obj.getClass();
/*
获取构造函数
getConstructors 获取所有构造函数
getDeclaredConstructors 获取所有私有构造函数(构造函数必须为私有)
*/
// Constructor[] con = cls.getConstructors();
Constructor[] con = cls.getDeclaredConstructors();
for (Constructor c:con) {
System.out.print(c.getName()+"(");
Class[] cl = c.getParameterTypes();
for (Class clss:cl) {
System.out.print(clss.getName()+",");
}
System.out.println(")");
}

}`

标签:反射,java,getName,Object,System,获取,cls,Class,out
来源: https://www.cnblogs.com/jiazhihao/p/13951994.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有