1、
Person.java:
package com.iteye.ibatis;
public class Person {
private Integer personId;
private String personName;
private Boolean personSex;
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public Boolean getPersonSex() {
return personSex;
}
public void setPersonSex(Boolean personSex) {
this.personSex = personSex;
}
}
package com.iteye.ibatis;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
2、InvokeDemo.java
public class InvokeDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Class<?> clazz = null;
Object object = null;
PropertyDescriptor propertyDescriptor = null;
Person person = new Person();
String s;
try {
clazz = Class.forName("com.iteye.ibatis.Person");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method writeMethod = propertyDescriptor.getWriteMethod();
s = fields[i].getType().getSimpleName();
if (s.equals("Integer"))
object = 1;
else if (s.equals("String"))
object = "liimuu";
else
object = true;
try {
writeMethod.invoke(person, object);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method readMethod = propertyDescriptor.getReadMethod();
try {
System.out.println(readMethod.invoke(person, (Object[]) null));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
### LabVIEW学习笔记知识点梳理 #### 一、调试技巧与数据监测 - **探针工具**: 在调试过程中,可以通过右键菜单中的`probe`和`custom probe`功能来设置探针,用于实时监测数据流。这有助于理解数据如何在各个节点...
### Spring编程学习笔记知识点概述 #### 一、Spring框架简介 Spring框架是一个开源的轻量级Java开发框架,主要用于简化企业级应用的开发工作。它提供了全面的基础架构支持,包括但不限于依赖注入(Dependency ...
### birt报表开发学习手册与常见问题解析 #### 一、访问数据列的方式 在BIRT报表开发过程中,访问数据列通常有以下三种方法: 1. **直接使用属性名**:例如 `row.id`,这种方式直观且易于理解。 2. **使用字符串...
### 学习笔记之反射 #### 反射概念与应用 **反射**是.NET框架中的一个强大特性,它允许程序在运行时动态地获取类型的信息并进行操作。反射可以用来创建对象、调用方法、访问字段等。这种能力使得.NET程序能够实现...
### Smali学习笔记 #### 1. Dalvik与Smali ##### 1.1 Dalvik虚拟机概述 Google推出的Dalvik虚拟机(Dalvik Virtual Machine, DVM)首次亮相是在2007年底,随着Android SDK的发布而一同进入公众视线。这款虚拟机是由...
这篇“java学习笔记”可能包含了从基础到进阶的各种Java编程概念和技术。以下是对这些笔记可能涵盖的一些关键知识点的详细说明: 1. **Java基础知识**: - **语法**:包括变量声明、数据类型(如整型、浮点型、...
【刘毅10000词汇学习笔记】是针对英语词汇提升的重要资料,它涵盖了大量词汇及其用法,有助于提高英语水平。以下是其中一部分词汇及其相关的知识点: 1. abdomen: 这个词指的是胸部和横膈膜以下的身体部分,包含胃...
2. **实现InvocationHandler**:`InvocationHandler`接口定义了一个`invoke`方法,该方法会在代理对象调用目标对象的方法时被触发。在`invoke`方法中,可以添加额外的处理逻辑,比如在调用目标方法之前和之后执行...
在本篇Spring学习笔记中,我们将深入探讨Spring的几个关键知识点,包括其优点、AOP的实现原理以及声明式事务管理。 首先,Spring的优点在于它的轻量级特性,它不对现有类结构造成入侵,允许开发者专注于业务逻辑。...
本学习笔记涵盖了Java的所有基础知识,旨在帮助初学者及有经验的开发者深入理解Java的核心概念和技术。 一、Java基础 1.1 Java环境搭建:安装JDK(Java Development Kit),设置环境变量PATH和JAVA_HOME,确保能够...
AXIS学习笔记主要介绍了如何使用AXIS框架进行SOAP Web服务的开发和部署,适用于互联网环境。AXIS是一个开源的Java库,它允许开发者创建、部署和使用基于SOAP的Web服务。以下是AXIS学习的关键知识点: 1. **SOAP Web...
AXIS学习笔记主要涵盖如何使用AXIS框架来开发SOAP Web服务和客户端程序。SOAP(简单对象访问协议)是一种用于交换结构化信息的标准协议,常用于Web服务交互,尤其是在企业内部系统如ERP的集成中。 首先,你需要搭建...
Android逆向之Smali学习笔记 Smali是一种用于Android逆向工程的中间语言,主要用于将Java字节码转换为可读的格式,以便于逆向工程和代码分析。在本文中,我们将学习Smali语言的基本语法和结构,并将其与Java语言...
《安卓逆向语言smali学习笔记》可能包含了以下几个关键知识点: 1. **Smali基础**:首先,你需要了解Smali的基本语法和指令集。Smali的指令与Java字节码类似,但更底层,包括数据操作、控制流、对象操作等。例如,`...
### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...
Java学习笔记JDK6课件和课本代码是一个珍贵的学习资源,尤其适合初学者或希望深入理解JDK6特性的开发者。这份资料集包含了PPT课件和源代码,旨在帮助学习者全面掌握Java编程语言的基础知识和JDK6的新特性。 Java是...
在本学习笔记中,我们将探讨WF4.0的基础知识,包括如何开始使用WF4.0、活动(Activity)的介绍以及`WriteLine`活动的使用。 首先,创建一个WF4.0的工作流控制台应用程序涉及两个关键部分:XAML文件和宿主程序。XAML...