易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA 反射机制

   您查询的关键词是:newinstance object initargs  。如果打开速度慢,可以尝试快速版;如果想保存快照,可以添加到搜藏。
(百度和网页http://bbs.iaiai.com/forum/read.php?tid=2690的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)
 主题 : java的反射机制  使用道具┊ 复制链接 ┊浏览器收藏┊打印
java的反射机制
java的反射机制一
在java里面有一种反射机制reflect,这是其它语言所没有的,可以动态创建对象和方法,还有成员变量等:
一.对象动态创建的方法如下:
我们需要使用的有Class类和Constructor类,还有Method和Field类,具体的使用方法如下:
1.使用Class类的Class.forName(String className)方法得到一个Class对象,
eg: Class aClass=Class.forName(Foo.class.getName());
或者 Class aClass=Class.forName("Foo");
2.得到一个Class对象之后,我们还需要把它转换成我们需要的类型对象,
eg: Foo foo=(Foo)aClass.newInstance();
注意此地方的newInstance()方法只能调用Foo类的公有无参构造函数,如果没有构造函数
则使用父类的公有无参构造函数,如果被重写了,则会创建对象失败。
3.得到了对象之后我们就可以任意摆布她了。
4.如果我们的构造函数里面需要传入参数,怎么办?
这时候我们就需要使用Constructor类了,创建方法如下:
eg: Constructor ctor = aClass.getDeclaredConstructor(Class[] parameterTypes);
如果我们有这样一个类需要动态创建对象:
public class BB {
private int baby = 9;
public BB(int b) {
baby = b;
}
/**
* @return Returns the baby.
*/
public int getBaby() {
return baby;
}
/**
* @param baby
* The baby to set.
*/
public void setBaby(int baby) {
this.baby = baby;
}
}
那么我们如何来做呢?
Integer[] os = new Integer[1];
os[0] = new Integer(6);
Class cls = Class.forName(BB.class.getName());
Constructor ctor = cls.getDeclaredConstructor((new Class[] { int.class }));
BB bbb = (BB) ctor.newInstance(os);
System.out.println(bbb.getBaby());
二.方法的动态创建:
假设上面的BB类需要动态创建getBaby()方法,我们该怎么做?这时候我们需要使用到
Method类了:
1.定义一个方法m:
eg: Class cls = Cla


相关文档:

Java EL系列 2.JUEL快速入门

  inkfish翻译,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish
)。本文是我学习JUEL同时,对原网站进行的简单的翻译,原网站地址:http://juel.sourceforge.net/guide/start.html

快速入门
  JUEL
发行版包含下面一些jar文件:(来源:http://blog.csdn.net/inkfish)
  1.juel-api-2.2 ......

java中数据库的备份与还原

首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。
完整代码:
    /**
     * @param args
     */
    public static void main(String[] args) {
        /*
  &nbs ......

关于用Java程序实现8421码权限管理 第四部分

自定义标签,标签处理器类:
PrivilegeTag.Java有权限的类设计:
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizh ......

Java的JDBC事务详解

事务的特性:
1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。
2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
3)&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号