1.用户类

package com.lf.entity;

import com.lf.annotation.SetProperty;
import com.lf.annotation.SetTable; public class UserEntity {
private String userName;
private int userAge; private final int money = 10000; public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
//借钱方法
public int getMoney(){
System.out.println("你借了 " + money + "元!");
return money;
}
//还钱方法,单个参数
public void repay(int money){
System.out.println("你还了 " + money + "元!");
}
//还钱方法,多个参数
public void repay(String userName,int money){
System.out.println(userName+ " 还了 " + money + "元!");
}
}

2.测试类

package com.lf.test;

import java.lang.reflect.Method;

import com.lf.entity.UserEntity;

public class Reflection {

    //反射调用方法获取返回值
//第一种方法,获取对象,直接通过对象调用方法
//第二种方法,通过方法名获取方法,执行方法
public static void main(String[] args) throws Exception {
Class<?> userClass = Class.forName("com.lf.entity.UserEntity");
UserEntity userEntity = (UserEntity) userClass.newInstance(); //第一种方法
System.out.println("第一次借钱:");
int money = userEntity.getMoney();
System.out.println("实际拿到钱为: " + money);
System.out.println("------------------------分割线------------------------"); //第二种方法,(无参的示例:借钱)
System.out.println("第二次借钱:");
Method getMoney = userClass.getMethod("getMoney");//得到方法对象
Object money2 = getMoney.invoke(userEntity);//调用借钱方法,得到返回值
System.out.println("实际拿到钱为:" + money2);
System.out.println("------------------------分割线------------------------"); //第二种方法,(单个参数的示例:还钱)
System.out.println("第一次还钱:");
Method repay1 = userClass.getMethod("repay",int.class);//得到方法对象,有参的方法需要指定参数类型
repay1.invoke(userEntity,3000);//执行还钱方法,有参传参
System.out.println("------------------------分割线------------------------"); //第二种方法,(单个参数的示例:还钱)
System.out.println("第二次还钱:");
Method repay2 = userClass.getMethod("repay", String.class,int.class);//得到方法对象,有参的方法需要指定参数类型
repay2.invoke(userEntity,"小飞",5000);//执行还钱方法,有参传参 }
}

最新文章

  1. thinkphp无法加载模块解决办法
  2. CentOS 6.5搭建PPTP VPN服务器
  3. 在线测试 ssl 安全性
  4. Unity 之 人物换装
  5. Linux 系统常用命令汇总(二) vi 文本编辑
  6. delphi 带历史信息的菜单
  7. 【BZOJ 1834】 [ZJOI2010]network 网络扩容
  8. Asp.net 定时写入文本记录
  9. java ssh框架入门
  10. GoldenGate 传统抽取进程的 ADG 模式
  11. matlab实现可调节占空比的方波
  12. Android 常见 Memory Leak 原因及解决办法总结
  13. mac 下SonarQube 安装与使用
  14. Java(原码、反码、补码和计算机存储格式)
  15. Shell编程(五)脚本语法
  16. MySQL 之 MHA + ProxySQL + keepalived 实现读写分离,高可用(一)
  17. C# sqlhelper 整理
  18. Leetcode 1.两数之和 By Python
  19. Win7 VS2013环境编译Squirrel 3.0.7
  20. vsm安装

热门文章

  1. mysql配置文件生效顺序
  2. 俄罗斯最新开源的牛掰数据库ClickHouse
  3. LeetCode——Add Strings
  4. tyvj 1059 过河 dp
  5. scala学习手记12 - 字段、方法和构造函数
  6. 列出远程git的全部分支
  7. Python之paramiko
  8. 打造万能的Python开发环境
  9. python基础之协程,列表生成式,生成器表达式
  10. About GCC