利用JAVA反射简单开发——查询某一类包含的所有方法及变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了利用JAVA反射简单开发——查询某一类包含的所有方法及变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2245字,纯文字阅读大概需要4分钟。
内容图文
![利用JAVA反射简单开发——查询某一类包含的所有方法及变量](/upload/InfoBanner/zyjiaocheng/639/1ba3b2c3310f423796ed7a829ccfda48.jpg)
- 创建查询类GetObjClassMessage.java编写查询
package mainClass;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* @Title:GetObjClassMessage.java
* @Description:获取传入数据 obj 该对象类型的所属类的信息
* @author:拾贰丶
* @date:2020-03-13 05:38:54
*/
public class GetObjClassMessage {
//---获取方法---
public static void GetAllMethods(Object obj) {
// 要获取类的信息 首先要获取类的类类型
Class c = obj.getClass();
// 获取类的名称
System.out.println("类的名称是:" + c.getName());
// Method类,方法对象
// 一个成员方法就是一个Method对象
// getMethods()方法获取的是所有的public的函数,包括弗雷继承而来的
// getDeclardeMethods()获取的是所有该类字节声明的方法,不问访问权限
Method[] ms = c.getMethods();// c.getDeclaredMethods()
for (int i = 0; i < ms.length; i++) {
// 得到方法的返回值类型的类类型
Class returnType = ms[i].getReturnType();
System.out.print(returnType.getName() + "");
// 得到方法的名称
System.out.print(ms[i].getName() + "(");
// 获取参数类型--->得到的是参数列表的类型的类类型
Class[] paramTypes = ms[i].getParameterTypes();
for (Class class1 : paramTypes) {
System.out.print(class1.getName() + ",");
}
System.out.println(")");
}
}
//---获取变量---
public static void GetAllVoid(Object obj) {
// 要获取类的信息 首先要获取类的类类型
Class c = obj.getClass();
// 获取类的名称
System.out.println("类的名称是:" + c.getName());
// 成员变量也是对象
// java.lang.reflect.Field
// Field类封装了关于成员变量的操作
//getFields()方法获取的是所有public的成员变量的信息
//getDeclaredFields获取的是该类自己声明的成员变量信息
Field[] fs= c.getDeclaredFields();//e.getFields()
for(Field field:fs) {
//得到成员变量的类型的类类型
Class fieldType=field.getType();
String typeName= fieldType.getName();
//得到成员变量的名称
String fieldName= field.getName();
System.out.println(typeName+" "+fieldName);
}
}
}
- 编写测试类调用
package main;
import mainClass.GetObjClassMessage;
/**
* @Title:GetAllMethods_main.java
* @Description:获取传入数据 obj 该对象类型的所属类的信息
* @author:拾贰丶
* @date:2020-03-13 05:38:54
*/
public class GetObjClassMessage_main {
public static void main(String[] args) {
Integer s=1;//创建一个Integer
GetObjClassMessage.GetAllVoid(s);//获取成员变量信息
System.out.println("===============================");
GetObjClassMessage.GetAllMethods(s);//获取方法信息
}
}
运行结果:
内容总结
以上是互联网集市为您收集整理的利用JAVA反射简单开发——查询某一类包含的所有方法及变量全部内容,希望文章能够帮你解决利用JAVA反射简单开发——查询某一类包含的所有方法及变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。