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();
}
}
}
}
分享到:
相关推荐
C_窗体中Invoke和BeginInvoke方法详解
C# Invoke多线程调用Demo......
the difference of Invoke and BeginInvoke
P/Invoke Interop Assistant,它支持托管代码和非托管代码之间的方法签名的转换,而且直接生成相关的C#或者是VB的方法调用代码。这个签名的转换,不只是适用于Windows的方法签名,只要给定一个C头文件,就可以转换...
Ivoke-WCMDump 什么是Credential Manager ...从Credential Manager导出Windows凭据的Powershell脚本 https://github.com/peewpw/Invoke-WCMDump PS>Import-Module .\Invoke-WCMDump.ps1 ...Invoke-WCMDump
就Invoke和BeginInvoke进行对比介绍,穿插了一些例子在里面
本程序实现Invoke反射,内置说明txt文档,可以参考
让你快速掌握INvoke与BeginInvoke的区别,HAHA
socket 源码程序 包含socket服务端 ,客户端,通过 Networkstream 流 streamReader /streamWriter进行动态获取写入信息。并且使用 委托 invoke ==
AutoCAD .NET ARX Invoke的应用
Invoke 是简单的 Python 系统任务执行程序。示例:from invoke import run, task @task def clean(docs=False, bytecode=False, extra=''): patterns = ['build'] if docs: patterns.append('docs/_...
忽略跨线程访问的错误 CheckForIllegalCrossThreadCalls = false,但是这个方法很不稳定,使用invoke方法解决跨线程访问的问题,里边有2个例子, 通过自己额外创建的线程改变label控件中的内容从而验证invoke方法
Invoke-ARPScan.ps1
可以把C/C++中的数据类型、结构体数据格式转换为C#或者VB版本中的对应格式类型。很方便
BPEL 用Invoke引用外部服务的例子,ConverterProj.war是需要调用的外部服务发布到TOMCAT下的包 ConverterProj.rar是外部服务的工程 InvokeWebServiceProj.rar是调用外部服务的BPEL工程 运行:将InvokeWebServiceProj...
委托delegate invoke的简单源代码,适合委托初学者!
P/Invoke Interop Assistant,用来调试C++写的动态库转换成C#或VB.NET
Test invoke interface extends DxTestCase Source Code for Linux.
使用 Invoke-WCMDump 加powershell 获取windows凭证密码 使用文档地址:https://blog.csdn.net/caperxi/article/details/117775522