Day16_89_通过反射机制获取所有构造方法

通过反射机制获取某个特定的构造方法

* 代码

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Modifier;

    public class ReflectTest17 {
        public static void main(String[] args) throws ClassNotFoundException {

            //创建class对象
            Class c= Class.forName("java.lang.String");//com.shige.Reflect.CustomerService

            //获取所有构造方法
            Constructor[] constructors=c.getDeclaredConstructors();

            //创建字符串缓冲区
            StringBuffer stringBuffer=new StringBuffer();

            //追加类头
            stringBuffer.append(Modifier.toString(c.getModifiers())+" class "+" "+c.getSimpleName()+"{\n");

            // 向字符串缓冲区中添加构造方法的各个部分
            for (Constructor constructor:constructors) {
                //构造方法头部分
                stringBuffer.append("\t");
                stringBuffer.append(Modifier.toString(constructor.getModifiers())+" "+ c.getSimpleName()+"(");

               //形参部分
                Class[] parameterTypes=constructor.getParameterTypes();

                for (int i = 0; i <parameterTypes.length ; i++) {

                    if (i != parameterTypes.length-1) {
                        stringBuffer.append(parameterTypes[i].getSimpleName()+",");
                    }else{
                        stringBuffer.append(parameterTypes[i].getSimpleName());
                    }

                }
                   stringBuffer.append("){}\n");

           }

              stringBuffer.append("}");

              System.out.println(stringBuffer);
      }
}
posted @ 2021-04-11 12:44  失昼  阅读(46)  评论(0)    收藏  举报