public static void main(String[] args) throws Exception {

        User user= (User) test(User.class);
System.out.println(user.getMoney());
invokeTest(user,"getMoneyT");
} /**通过反射获取实例
* @param clazz类,如user.class
* @return 类实例
* @throws Exception
*/
static Object test(Class clazz) throws Exception{
//clazz.newInstance();//实例化一个类,前提是该类存在无参构造参数
Constructor constructor=clazz.getConstructor(String.class);//得到构造器,String.class是即将实例化类clazz的构造参数的类型
Object obj= constructor.newInstance("test");//传入一个参数进行实例化
return obj;
}
/**调用指定方法
* @param obj对象
* @param methodName要调用的方法名
* @throws Exception
*/
static void invokeTest(Object obj,String methodName) throws Exception{
Method[] ms= obj.getClass().getDeclaredMethods();//当前类的方法,包括私有
//ms=obj.getClass().getMethods();//子类 父类的所有公共方法
for(Method m:ms){
System.out.println(m.getName());
if (m.getName().equals(methodName)) {
m.invoke(obj, null);//调用无参方法
} }
Method methods=obj.getClass().getMethod(methodName, null);//根据方法名和参数直接调用方法,方法无参传null
methods.invoke(obj, null);
}
/**通过反射获取字段
* @param clazz
* @throws Exception
*/
static void filed(Class clazz) throws Exception{
Field[] fs=clazz.getDeclaredFields();//当前类的字段,包括私有
//fs=clazz.getFields();//所有公共字段
for (Field field : fs) {
System.out.println(field.getName());
}
}

最新文章

  1. 浅谈利用SQLite存储离散瓦片的思路和实现方法
  2. PMO到底什么样?(3)
  3. the way of reading English books
  4. ELK+redis集群搭建
  5. ligerui grid行编辑示例
  6. SQL SERVER 中identity用法
  7. 无法在Web服务器上启动调试,与Web服务器通信时出现身份验证错误
  8. js构造函数
  9. asp.net 发邮件
  10. linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结
  11. java学习笔记 --- 异常
  12. 阿里云服务器(Windows)如何下载文件
  13. iOS10以下版本不支持swiper
  14. 转 在PowerDesigner的PDM图形窗口中显示数据列的中文注释
  15. RabbitMQ常见错误2
  16. linux内存不足,swap交换分区创建
  17. sql not in 优化问题
  18. Java提供了哪些IO方式?IO, BIO, NIO, AIO是什么?
  19. 3D屏保:N皇后
  20. 什么是HBASE(三) HBase的压缩和编码

热门文章

  1. Java面向对象编程 -6.6
  2. curl模拟提交
  3. JEECG右上角用户信息完整显示
  4. Hadoop3.1.1源码Client详解 : 入队前数据写入
  5. C#面向对象三大特性:继承
  6. 我的18vps~
  7. CentOS7.6配置ip
  8. Java进阶学习(3)之对象容器(上)
  9. Map-HashMap 与 IF 判断内存占用对比
  10. ZOJ - 3203 Light Bulb(三分)