最近在看Java的反射,把学习的东西整理一下,大家共同研究,有需要改进的地方,请大家指正。

import java.beans.PropertyDescriptor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

public class ReflectionTest {

public static void main(String args[]) {

try {

//通过反射获得类

Class clazz = Class.forName("User");

//实例化类

Object obj = clazz.newInstance();

//获得类的所有属性

Field[] fields = clazz.getDeclaredFields();

for(Field f : fields){

PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);

//获得写方法

Method wM = pd.getWriteMethod();

//获得读方法

Method rM = pd.getReadMethod();

//获得方法的参数,因为是标准的set方法,所以只取第一个参数

Class[] classes = wM.getParameterTypes();

//判断参数不为空,则只有一个

if(classes != null && classes.length == 1){

//判断参数类型

if(classes[0].equals(String.class)){

//调用set方法,传参

wM.invoke(obj, "Jack");

//调用get方法,获得返回值

String str = (String) rM.invoke(obj);

System.out.println("Name is : " + str);

}

if(classes[0].equals(int.class)){

wM.invoke(obj, 2);

Integer num = (Integer) rM.invoke(obj);

System.out.println("Age is : " + num);

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

class User {

private String Name;

private int age;

public String getName() {

return Name;

}

public void setName(String name) {

Name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

java 动态生成getset_通过get、set方法,动态生成对象相关推荐

  1. Java栈内存、堆内存、方法区对对象和引用的关系

    问题:Java栈内存.堆内存.方法区对对象和引用的关系 答案: 1.单个对象 如图所示: (1)首先类加载器加载要运行的类,首先将main方法加载进方法区,并进栈内存,顺序执行代码,创建对象,将对象的 ...

  2. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串...

    openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...

  3. Word怎么生成目录?4个方法快速生成目录!

    案例:Word怎么生成目录 [想问下大家在使用Word时是怎么生成目录的呀?正在写毕业论文的我真的很急!感谢!] Word作为我们常用的办公软件,为我们的提供了很多便利.生成目录是在Word文档中创建 ...

  4. php 生成腾讯云签名方法,PHP生成腾讯云COS接口需要的请求签名的相关内容

    这篇文章主要介绍了使用 PHP 创建 COS 接口所需要的请求签名,与官方文档给出的示例做比较,验证算法的正确性,需要的朋友可以参考下 COS和请求签名是什么 COS 是腾讯云对象存储的缩写及简称,请 ...

  5. 利用Java生成静态HMTL页面的方法收集

    利用Java生成静态HMTL页面的方法收集 生成静态页面技术解决方案之一 转载者前言:这是一个全面的jsp动态页面静态化方案,本站的帖子静态化方案将借鉴这篇帖子中方法.向[url]http://www ...

  6. Java 反射机制快速入门及常见方法全归纳。

    目录 一.反射机制 1.基本介绍 2.原理示意图 3.反射基本代码实现 4.反射性能 二.Class 类 1.基本介绍 2.获取 Class类对象的方式 3.有 Class对象的类 三.类加载 1.基 ...

  7. C++生成GUID的两种方法

    C++生成GUID的两种方法 C++生成GUID的两种方法 使用CoCreateGuid函数 使用Boost库 C++生成GUID的两种方法 GUID是软件开发中常用的组件,用于生成唯一的对象,在C# ...

  8. arcgis android gif,一种基于动态地图符号的移动GIS可视化方法与流程

    本发明具体涉及一种基于动态地图符号的移动GIS可视化方法动态地图符号的技术领域 背景技术: 随着移动设备的高度集成化和处理器的快速发展,终端设备的计算和处理能力不断增强,移动GIS的应用领域越来越广泛 ...

  9. Keil5 生成bin文件失败解决方法

    Keil5 生成bin文件失败解决方法 如何生成.bin文件 打开工程Options for Target -> User 勾选Run #1,并添加如上图代码 "$KARM\ARMCC ...

  10. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理

    Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...

最新文章

  1. 我愿意参加计算机俱乐部的英文,如果你是一英语俱乐部的负责人你会组织什么活动...
  2. 串口下载器rts线不接可以吗_【单片机自学】1.单片机的开发环境及下载过程教程...
  3. [转]NLog学习笔记二:深入学习
  4. 牛X,.NET6又双叒叕新版本,这是要起飞吗?
  5. P2548 [AHOI2004]智能探险车
  6. Redis 属于单线程还是多线程?不同的版本有什么区别?
  7. 回归分析beta值的标准_读懂回归分析-SPSS为例(无广告)
  8. 固定ip_1分钟学会查看跨境卫士费用和选择固定IP
  9. [论文阅读] Cross-level Contrastive Learning and Consistency Constraint for Medical Image Segmentation
  10. 都不写代码,架构师整天在干啥?
  11. LeetCode:Island Perimeter - 岛屿周长
  12. MCP2515在8M晶振控制器下配置1M波特率的配置
  13. php 后台运行,php程序后台运行的实现方法
  14. 【Ubuntu】MTK刷机工具MT8167版本打不开,缺少libpng12-0的解决方法
  15. Tensorflow nmt的整体结构
  16. Tibco Designer -- 构建EAR文件
  17. leetcode 376. 摆动序列(三种解法)
  18. ROS 学习踩坑笔记5-Intel D435相机不发布点云,在RVIZ中,不显示点云(wants topic /image/compressed to have datatype/md5sum)
  19. 如何用 js 获取虚拟键盘高度?- 20170817 前端开发日报
  20. php+科研课题管理 毕业设计-附源码170914

热门文章

  1. 云+X案例展 | 民生类:智领云数据中台为“健康武汉”增砖添瓦
  2. 聊聊云计算:为什么构建网站时常会用到负载均衡
  3. Gartner的预言:通向混合IT之旅
  4. 面趣 | 为什么要分稳定排序和非稳定排序?
  5. 计算机模拟数学实验动画,计算机图形学实验-简单动画的实现、三维图形变换.docx...
  6. linux unzip命令不存在_15个常用基础命令Linux(很多人不知道!)
  7. 基于Dockerfile创建一个最简单的docker镜像
  8. flowable DMN规则引擎几种类型解释_04
  9. Springboot-Flowable 快速开发工作流
  10. springboot整合activiti报错[processes/]不存在解决方案