学习一点工具类

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;
  }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Java的基础知识可以按照以下步骤进行: 1. 学习编程基础:了解编程的基本概念、语法和逻辑。可以从学习其他编程语言开始,比如Python或C,这将帮助你掌握一些通用的编程概念。 2. 学习Java语言特性:Java是一种面向对象的编程语言,你需要学习类、对象、继承、多态等概念。可以通过阅读教材或参加在线教育平台上的课程来学习。 3. 安装和设置Java开发环境:下载并安装Java Development Kit(JDK),这是Java开发的基础工具包。然后设置Java环境变量,以便在命令行或集成开发环境(IDE)中使用Java。 4. 学习Java核心库:Java有很多内置的类和方法可以帮助你开发应用程序。学习Java核心库可以帮助你理解并使用这些功能。包括IO操作、集合框架、多线程等。 5. 练习编写代码:通过编写实际的Java程序来巩固所学知识。可以从简单的程序开始,逐渐增加难度,例如编写控制台应用程序、图形用户界面(GUI)应用程序或网络应用程序。 6. 参与项目或实践:通过参与开源项目、完成编程挑战或实践项目来提升你的Java编程能力。这将帮助你应用所学知识,并加深理解。 7. 持续学习和探索:Java是一门广泛应用的编程语言,有很多不同的应用领域和框架。持续学习和探索新的技术、框架和最佳实践,以保持自己的竞争力。 记住,学习编程需要时间和耐心。坚持练习,解决问题时要多思考,多查阅文档和参考资料,提高自己的编程能力。祝你学习Java的旅程愉快!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值