- 浏览: 980114 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 1598高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10084SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30724NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10658先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1491核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1279核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1392首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术构造对象
2009-04-20 22:54 1551public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1559JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1350JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 20571, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1158隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1473可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1574可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 1957在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2640ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2579ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3003PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1432System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4829JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields)。感兴趣的朋友可以下载下来看看,了解了解
通过反射调用对象的方法和访问对象的字段。 根据类的信息进行序列化和反序列化操作。 实现动态代理和AOP(面向切面编程)等高级特性。 掌握反射机制的目标是能够在运行时获取类的信息,并灵活地利用这些信息来完成所...
Java反射机制,万物皆对象,class也是一个类的对象,通过类类型,反射获得类的成员属性,构造方法,成员方法,并调用类中的方法,也可以调用私有方法。
Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心...
近日,想整理下我自己的vb.net应用程序中,自己定义的类、控件、窗体等对象,希望能够获得它们的“属性”、“字段”、“方法”、“事件”等名称。查阅了“反射”(Reflection)相关资料,写了以下一段代码,分享给...
使用反射,我们可以很容易地在运行时调用一些编译时无法确定的属性、方法等。在.NET中的反射可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中...
“反射(Reflection)是.NET中的一个重要技术,通过反射,可以在运行时获得某个类型的各种信息,包括方法、属性、事件及构造函数等,还可以获得每个成员的名称、限定符和参数等信息。可以说有了反射,即可对每个类型...
创建一个Assembly,反射构造函数,方法,属性信息,动态实例化类对象,调用类方法。对想简单了解反射概念的朋友有一定的帮助。
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 我的代码里主要有一下知识点: 1.获取Class对象的三种方式 2.获取构造方法并调用 3.获取成员方法 4.获取成员变量 5.反射数组 6.通过反射...
Golang语言实现了反射,反射机制就是在运行时动态的调用对象的方法和属性,官方自带的reflect包就是反射相关的,只要包含这个包就可以使用。 多插一句,Golang的gRPC也是通过反射实现的。 Golang的官方包 reflect ...
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型...
下面小编就为大家带来一篇Java通过反射机制动态设置对象属性值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java反射反射机制,通过反射,在不修改源代码的情况下实现对类的操作。JAVA反射机制是在运行状态中...这种动态获取信息以及动态调用对象方法(**方法名.invoke(类对象),类似于p.eat()**)的功能称为java语言的反射机制。
这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。 Class 类与 java.lang.reflect 类库一起对反射的概念进行了支持,该类库包含了 Field,Method,Constructor 类 (每个类都实现了 ...
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...
编写Student类,类中包含学生姓名,学号等私有数据成员。 使用JAVA反射机制修改一个学生对象的私有数据成员(不允许调用setters)
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的...