|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,
Java反射机制供应了一种壮大的使用程序接口来匡助我们在运转时检测和实行对象上的操纵。该机制同意程序员审阅一个未知对象,而且取得它的属性,比方对象上的办法,JavaBean的属性和承继干系等。
Java中有两品种型的值,一种是类范例,它把对象的属性界说在一个类中。类范例是面向对象布局的基础构成部分。第二品种型的值是基础数据范例。反射范例一般用于类范例,可是,实在它也能够很便利使用到Java的基础范例上。
Java中的基础范例承继自基于C的语法,个中包含boolean、byte、short、int、long、float、double、char等范例。
每个基础范例都与一个java类相干联。这些类封装在java.lang.package中,这个package默许导进一切的java源代码文件。
在java.lang包的基础数据范例包装类中,不是像界说对象那样用类(class)而是用一些特别的常量来暗示基础数据的范例(type).比方,是常量Interger.TYPE而不是类Integer暗示int范例,是Byte.TYPE常量暗示了byte范例.这类体例使得为一个未知的JavaBean创立通用的组件成为大概.
上面是一个例子片段,其感化是依据一个传来的HttpServletRequest中设置JavaBean中的值。
//thrown
Exceptionsareleftoutforeaseofreading...
Objectbean=....
BeanInfobi=Introspector.getBeanInfo(bean.getClass());
PropertyDescriptor[]pds=bi.getPropertyDescriptors();
for(inti=0;iStringname=pds[i].getName();
Stringvalue=request.getParameter(name);
if(value!=null){
Methodmethod=pds[i].getWriteMethod(
);
value=convert(value,
method.getParameterType()[0]);
method.invoke(bean,newObject[
]{value});
}
}
Convert办法中短少的代码界说以下:
publicObject
convert(Objectvalue,Classtype){
Stringname=type.getName();
if("java.lang.String.equals(name)){
returnvalue.toString();
}else
if("java.lang.Long".equals(name)||(type==
Long.TYPE)){
returnconvertToLong(value);
}else
if("java.lang.Integer".equals(name)||(type
==Integer.TYPE)){
returnconvertToInteger(value);
}else
.....
}
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点, |
|