- 浏览: 990241 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
package com.mengya.test;
import java.util.Date;
public class User {
private int id;
private String name;
private Date birthday;
private float money;
public User() {
}
public User(String name) {
this.name = name;
}
public User(float money) {
this.money = money;
}
public void showName() {
System.out.println(this.name);
}
@Override
public String toString() {
return "id=" + this.id + " name=" + this.name + " birthday="
+ this.birthday + " money=" + this.money;
}
private void test() {
}
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public void setBirthday(java.sql.Date birthday) {
this.birthday = birthday;
}
public float getMoney() {
return money;
}
public void setMoney(Float money) {
this.money = money;
}
}
测试:
public class ReflectTest {
public static void main(String[] args) throws Exception {
Class clazz = User.class;
Object obj = create(clazz);
System.out.println(obj);
System.out.println("---------");
invoke1(obj, "showName");
System.out.println("---------");
field(clazz);
}
//通过Class构造对象
static Object create(Class clazz) throws Exception {
Constructor con = clazz.getConstructor(String.class);
Object obj = con.newInstance("test name");
return obj;
}
//根据方法名称,调用对象的方法
static void invoke1(Object obj, String methodName)
throws IllegalArgumentException, IllegalAccessException,
InvocationTargetException, Exception, NoSuchMethodException {
//Method是一个对象在java.lang.reflect.Method中,包含有方法的信息
Method[] ms = obj.getClass().getDeclaredMethods();
//得到对象自己的方法包括Privete方法,但不放包括父类的方法
ms = obj.getClass().getMethods();
//得到对象所有public方法,也包括来自父类的方法.通常用个
for (Method m : ms) {//循环遍历对象中的所有方法
// System.out.println(m.getName());//得到所有方法名称
if (methodName.equals(m.getName()))
m.invoke(obj, null);//调用方法名为参数中methodName值的方法,该方法(所找到的那个方法)没有参数
}
Method m = obj.getClass().getMethod(methodName, null);//这样是根据方法名称和方法参数去要找特定的方法.null表示该方法没有参数
//obj.getClass().getMethod(methodName,String.class);//这样是根据方法名称和方法参数去要找特定的方法.该方法的参数为String
m.invoke(obj, null);//调用obj对象的这个方法
}
//得到对象的属性
static void field(Class clazz) throws Exception {
Field[] fs = clazz.getDeclaredFields();//所有属性都能得到,包括private属性也能得到
//fs = clazz.getFields();//public属性能得到
for (Field f : fs)
System.out.println(f.getName());//输出所属性的名字
}
//得到对象中的Annotation如:@Override
static void annon(Class clazz) throws Exception {
Annotation[] as = clazz.getAnnotations();
for(Annotation an : as){
System.out.println(an.toString());
}
}
}
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1638高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10115SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30789NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10710先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1539核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1331核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1451首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术构造对象
2009-04-20 22:54 1609public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1602JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1394JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21031, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1202隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1515可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1628可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2001在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2695ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2618ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3048PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1477System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4889JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
4. 执行脚本,动态地反射调用对象中的方法和打印对象的字段。 通过这种技术,我们可以在不直接修改应用代码的情况下,对应用进行操作。这对于逆向工程和安全测试来说,是非常有用的技术。然而,必须注意的是,这种...
在Java或.NET编程环境中,反射是一种强大的工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。反射获取属性和调用方法是其核心功能,广泛应用于框架设计、动态代理、插件机制等领域。下面将详细解释这...
3. **设置访问权限**:由于私有方法默认是不可访问的,所以我们需要通过`setAccessible(true)`方法来改变其访问权限,允许反射调用。`privateMethod.setAccessible(true);` 4. **调用私有方法**:现在我们可以调用...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...
反射是.NET框架提供的一种机制,它允许在运行时检查类型信息,包括类、接口、枚举、属性、方法等。通过System.Reflection命名空间中的类,如Assembly、Type、MethodInfo、ConstructorInfo等,我们可以动态地创建对象...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java程序具有了高度的灵活性和动态性,尤其在框架开发、插件系统...
本教程将深入探讨如何使用C#的反射来调用对象成员,这对于编写灵活和高度自适应的代码至关重要。 首先,我们需要了解`System.Reflection`命名空间,它是C#反射的核心。在这个命名空间中,`Type`类代表了.NET框架中...
本文介绍了如何使用Java反射机制来创建get和set方法,并通过反射调用这些方法来访问对象的属性。这种方式虽然灵活,但在实际开发中应当谨慎使用,因为它可能会降低代码的性能和可维护性。了解反射机制的基本原理对于...
在Java中,反射主要用于在运行时分析类和对象,包括类的方法、字段、构造器等信息。这篇博文将带你入门Java反射,并通过属性和方法的调用来实践这一概念。 首先,理解反射的基础概念。在Java中,`Class`类代表了...
通过反射调用对象的方法和访问对象的字段。 根据类的信息进行序列化和反序列化操作。 实现动态代理和AOP(面向切面编程)等高级特性。 掌握反射机制的目标是能够在运行时获取类的信息,并灵活地利用这些信息来完成所...
在ASP.NET的网页(如Default.aspx)中,我们可以创建一个`Student`实例,并调用`ReflectorClass.getPropertyName`方法来获取并显示`Student`对象的属性信息: ```aspx <!DOCTYPE html> 反射示例 ...
通过反射,我们可以操作程序集、类型、接口、属性、方法等,从而增加了代码的灵活性和可扩展性。本篇文章将深入探讨如何利用反射在C#中动态创建对象。 1. **反射基础** 反射是.NET框架提供的一种特性,通过System....
在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理等。在标题和描述中提到的知识点主要集中在如何通过反射获取类的所有属性和get方法,包括来自子类和父类的。下面将详细...
反射机制使得我们能够在运行时动态地获取类的信息,并且能够创建对象、调用方法、访问字段,甚至改变类的行为。在Java中,`java.lang.reflect`包提供了对反射的支持。 在“反射,动态加载指定类调用类中的方法”这...
在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类信息等。本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解...
在实际应用中,反射调用DLL里的方法可能涉及到更复杂的逻辑,比如处理泛型方法、静态方法、私有方法等。同时,需要注意性能问题,因为反射操作相比直接调用通常会慢一些,所以不应在性能敏感的代码中过度使用。 总...
在ActiveX中,开发者可以使用反射来获取关于控件的信息,如其接口、方法和属性,甚至在没有编译时信息的情况下调用这些方法。这对于实现动态绑定和自适应的代码非常有用。 方法调用是编程中的基本操作,但在ActiveX...
### C#中使用反射调用动态加载的DLL文件中的方法 #### 反射的作用与应用场景 反射是.NET框架中的一项重要技术,它允许程序在运行时动态地获取自身的元数据(如类、方法、属性等)并进行操作。具体而言,反射主要有...
这一机制的核心在于,Java程序可以获取到关于任何类的内部信息,包括类名、属性、方法、构造器等,并能在运行时创建和调用对象。这种能力使得Java具有了很高的灵活性和可扩展性,尤其是在处理动态加载类、框架设计...