zoukankan      html  css  js  c++  java
  • java将父类所有的属性COPY到子类中

    public class FatherToChildUtils {
        /* 
         * 将父类所有的属性COPY到子类中。 
         * 类定义中child一定要extends father; 
         * 而且child和father一定为严格javabean写法,属性为deleteDate,方法为getDeleteDate 
         */  
        public static void fatherToChild (Object father,Object child){  
            if(!(child.getClass().getSuperclass()==father.getClass())){  
                System.err.println("child不是father的子类"); 
            }  
            Class fatherClass= father.getClass();  
            Field ff[]= fatherClass.getDeclaredFields();  
            for(int i=0;i<ff.length;i++){  
                Field f=ff[i];//取出每一个属性,如deleteDate  
                Class type=f.getType();  
                try {
                    Method m = fatherClass.getMethod("get"+upperHeadChar(f.getName()));//方法getDeleteDate  
                    Object obj=m.invoke(father);//取出属性值               
                    f.set(child,obj);
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (NoSuchMethodException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }  
            }  
        }  
        /** 
         * 首字母大写,in:deleteDate,out:DeleteDate 
         */  
        private static String upperHeadChar(String in){  
            String head=in.substring(0,1);  
            String out=head.toUpperCase()+in.substring(1,in.length());  
            return out;  
        }  
    
    }
  • 相关阅读:
    关于以追加模式写入文件时,为什么第一行是空行?
    使用正则表达式的技巧
    super关键字的三种用法
    Excel快捷键
    重载与重写的区别
    方法重名
    区分子类方法中重名的三种变量
    继承
    Chapter08【String类、static、Arrays类、Math类】
    Math类
  • 原文地址:https://www.cnblogs.com/chasewade/p/3494312.html
Copyright © 2011-2022 走看看