java 动态生成getset_通过get、set方法,动态生成对象
最近在看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方法,动态生成对象相关推荐
- Java栈内存、堆内存、方法区对对象和引用的关系
问题:Java栈内存.堆内存.方法区对对象和引用的关系 答案: 1.单个对象 如图所示: (1)首先类加载器加载要运行的类,首先将main方法加载进方法区,并进栈内存,顺序执行代码,创建对象,将对象的 ...
- 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 ...
- Word怎么生成目录?4个方法快速生成目录!
案例:Word怎么生成目录 [想问下大家在使用Word时是怎么生成目录的呀?正在写毕业论文的我真的很急!感谢!] Word作为我们常用的办公软件,为我们的提供了很多便利.生成目录是在Word文档中创建 ...
- php 生成腾讯云签名方法,PHP生成腾讯云COS接口需要的请求签名的相关内容
这篇文章主要介绍了使用 PHP 创建 COS 接口所需要的请求签名,与官方文档给出的示例做比较,验证算法的正确性,需要的朋友可以参考下 COS和请求签名是什么 COS 是腾讯云对象存储的缩写及简称,请 ...
- 利用Java生成静态HMTL页面的方法收集
利用Java生成静态HMTL页面的方法收集 生成静态页面技术解决方案之一 转载者前言:这是一个全面的jsp动态页面静态化方案,本站的帖子静态化方案将借鉴这篇帖子中方法.向[url]http://www ...
- Java 反射机制快速入门及常见方法全归纳。
目录 一.反射机制 1.基本介绍 2.原理示意图 3.反射基本代码实现 4.反射性能 二.Class 类 1.基本介绍 2.获取 Class类对象的方式 3.有 Class对象的类 三.类加载 1.基 ...
- C++生成GUID的两种方法
C++生成GUID的两种方法 C++生成GUID的两种方法 使用CoCreateGuid函数 使用Boost库 C++生成GUID的两种方法 GUID是软件开发中常用的组件,用于生成唯一的对象,在C# ...
- arcgis android gif,一种基于动态地图符号的移动GIS可视化方法与流程
本发明具体涉及一种基于动态地图符号的移动GIS可视化方法动态地图符号的技术领域 背景技术: 随着移动设备的高度集成化和处理器的快速发展,终端设备的计算和处理能力不断增强,移动GIS的应用领域越来越广泛 ...
- Keil5 生成bin文件失败解决方法
Keil5 生成bin文件失败解决方法 如何生成.bin文件 打开工程Options for Target -> User 勾选Run #1,并添加如上图代码 "$KARM\ARMCC ...
- Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理
Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...
最新文章
- 我愿意参加计算机俱乐部的英文,如果你是一英语俱乐部的负责人你会组织什么活动...
- 串口下载器rts线不接可以吗_【单片机自学】1.单片机的开发环境及下载过程教程...
- [转]NLog学习笔记二:深入学习
- 牛X,.NET6又双叒叕新版本,这是要起飞吗?
- P2548 [AHOI2004]智能探险车
- Redis 属于单线程还是多线程?不同的版本有什么区别?
- 回归分析beta值的标准_读懂回归分析-SPSS为例(无广告)
- 固定ip_1分钟学会查看跨境卫士费用和选择固定IP
- [论文阅读] Cross-level Contrastive Learning and Consistency Constraint for Medical Image Segmentation
- 都不写代码,架构师整天在干啥?
- LeetCode:Island Perimeter - 岛屿周长
- MCP2515在8M晶振控制器下配置1M波特率的配置
- php 后台运行,php程序后台运行的实现方法
- 【Ubuntu】MTK刷机工具MT8167版本打不开,缺少libpng12-0的解决方法
- Tensorflow nmt的整体结构
- Tibco Designer -- 构建EAR文件
- leetcode 376. 摆动序列(三种解法)
- ROS 学习踩坑笔记5-Intel D435相机不发布点云,在RVIZ中,不显示点云(wants topic /image/compressed to have datatype/md5sum)
- 如何用 js 获取虚拟键盘高度?- 20170817 前端开发日报
- php+科研课题管理 毕业设计-附源码170914
热门文章
- 云+X案例展 | 民生类:智领云数据中台为“健康武汉”增砖添瓦
- 聊聊云计算:为什么构建网站时常会用到负载均衡
- Gartner的预言:通向混合IT之旅
- 面趣 | 为什么要分稳定排序和非稳定排序?
- 计算机模拟数学实验动画,计算机图形学实验-简单动画的实现、三维图形变换.docx...
- linux unzip命令不存在_15个常用基础命令Linux(很多人不知道!)
- 基于Dockerfile创建一个最简单的docker镜像
- flowable DMN规则引擎几种类型解释_04
- Springboot-Flowable 快速开发工作流
- springboot整合activiti报错[processes/]不存在解决方案