Java反射4
1.3. 反射机制的功能
JAVA反射机制主要提供了以下功能:
1.在运行时判断任意一个对象所属的类
2.在运行时构造任意一个类的对象
3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)
4.在运行时调用任意一个对象的方法(*****注意:前提都是在运行时,而不是在编译时)
1.3.1.在运行时判断任意一个对象所属的类
1.3.2.在运行时构造任意一个类的对象
想生成对象的实体,在反射动态机制中有两种方法,
一个针对无变量的构造方法,
一个针对带参数的构造方法,如果想调用带参数的构造方法,就比较的麻烦,不能直接调用Class类中的newInstance(),而是调用Constructor类中newInstance()方法,首先准备一个Class[]作为Constructor的参数类型。然后调用该Class对象的getConstructor()方法获得一个专属的Constructor的对象,最后再准备一个Object[]作为Constructor对象昂的newInstance()方法的实参。
在这里需要说明的是 只有两个类拥有newInstance()方法,分别是Class类和Constructor类,Class类中的newInstance()方法是不带参数的,而Constructro类中的newInstance()方法是带参数的,需要提供必要的参数。
例:
Class c=Class.forName("DynTest");
Class[] ptype=new Class[]{double.class,int.class};
Constructor ctor=c.getConstructor(ptypr);
Object[] obj=new Object[]{new Double(3.1415),new Integer(123)};
Object object=ctor.newInstance(obj);
System.out.println(object);
1.3.3.在运行时调用类所具有的成员变量和方法
变更Field不需要参数和自变量,首先调用Class的getField()并指定field名称,获得特定的Field对象后便可以直接调用Field的 get(Object obj)和set(Object obj,Object value)方法
或使用java.beans.PropertyDescriptor类,例如:
属性赋值:
private static void setPropertyValue (String name,String value,Object object) throws Exception{
&
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
Java中的对象池模式
Java对象的生命周期分析:
Java对象的生命周期大致包括三个阶段:
对象的创建,对象的使用, 对象的清除。 因此,对象的生命周期长度可用如下的表达式表示: T = T1 + T2 + T3.其中T1表示对象的创建时间,T2表示对象的使用时间,而T3则表示对象的清除时间。由此,我们可以看出,只有T2是真正有效的时 ......
基于泛型的通用Dao接口:(重要是在应用hibernate或JPA时运用)
package com.qiujy.dao;
import java.io.Serializable;
import java.util.List;
/**
* 基于泛型的通用Dao接口
*/
public interface GenericDao {
void create(T entity);
void delete(T entity);
......
.class其实是在java运行时就加载进去的
getClass()是运行程序时动态加载的
下面以例子说明:
首先建一个基类Baseclass
package classyongfa;
public class Baseclass {
private String height;
public String getHeight()
{
return height;
}
public void setHeight(String height)
{
&n ......