操纵Java反射机制必定基本数据典范属性[Java编程]
本文“操纵Java反射机制必定基本数据典范属性[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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
Exceptions are left out for ease of reading...
Object bean = ....
BeanInfo bi = Introspector.getBeanInfo(bean.getClass( ));
PropertyDescriptor[ ] pds = bi.getPropertyDescriptors( );
for(int i=0; i String name = pds[i].getName( );
String value = request.getParameter(name);
if(value != null) {
Method method = pds[i].getWriteMethod(
);
value = convert(value,
method.getParameterType( )[0]);
method.invoke(bean, new Object[
] { value } );
}
}
Convert办法中贫乏的代码定义以下:
public Object
convert(Object value, Class type) {
String name = type.getName( );
if( "java.lang.String.equals(name) ) {
return value.toString();
} else
if( "java.lang.Long".equals(name) || (type ==
Long.TYPE) ) {
return convertToLong(value);
} else
if( "java.lang.Integer".equals(name) || (type
== Integer.TYPE) ) {
return convertToInteger(value);
} else
.....
}
以上是“操纵Java反射机制必定基本数据典范属性[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |