您的位置:首页 > 其它

学习一点工具类

2016-04-25 13:48 225 查看
org.apache.cxf.common.util.StringUtils
Field[] fields = o.getClass().getDeclaredFields();
for (Field field : fields) {
String md = "set"+StringUtils.capitalize(field.getName());
try {
o.getClass().getMethod(md, field.getType());
} catch (NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


数组与集合的区别:
一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。
二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。
三:数组是一种可读/可写数据结构没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方   只读方式来使用集合。该方法将返回一个集合的只读版本。

在使用list 与arraylist的过程中发现对接口与实例的概念区分不清啊

Java Web 开发中,我们经常会遇到,从后台获取前台的值,将获取的值通过set方法赋值给实体,然后将实体存入数据库中,有时候对于实体属性多时,代码量很大(其实都是那些set方法),所以针对这点,我们可以通过method反射机制,写个通用的底层方法(对任何实体都有效),这样一来,我们就不用再去一个一个set到实体中去。
public static  Object ObjectMethod(Object obj,HttpServletRequest request){
Field[] fields = obj.getClass().getDeclaredFields();
for(Field field:fields){
String md = "set"+StringUtils.capitalize(field.getName());
try {
Method method = obj.getClass().getDeclaredMethod(md, field.getType());
if("Java.lang.String".equals(field.getType().getName())){
String value = request.getParameter(field.getName());
method.invoke(obj, value);
}else if("java.lang.Integer".equals(field.getType().getName())){
if(!"".equals(request.getParameter(field.getName()))&&request.getParameter(field.getName())!=null){
Integer value = Integer.valueOf(request.getParameter(field.getName()));
method.invoke(obj, value);
}
}else{//这里判断当实体中某个属性为对象类型时,再一次去反射
Class c = Class.forName(field.getType().getName());//获取属性所对应的实体类
Object o =c.newInstance();                         //new一个实体类
Field[] fs = o.getClass().getDeclaredFields();
for(Field f : fs){
if(f.getName().endsWith("id")){//需要命名规范
String set = "set"+StringUtils.capitalize(f.getName());
Method m = o.getClass().getDeclaredMethod(set, f.getType());
if("java.lang.Integer".equals(f.getType().getName())){
Integer value = Integer.valueOf(request.getParameter(field.getName()));
m.invoke(o, value);
method.invoke(obj, o);
}else if("java.lang.String".equals(field.getType().getName())){
String value = request.getParameter(field.getName());
m.invoke(o, value);
method.invoke(obj, o);
}//今后添加基础类型
}
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (InstantiationException e) {
e.printStackTrace();
}
}
return obj;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: