首页 / JAVA / Java反射《二》获取构造器
Java反射《二》获取构造器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java反射《二》获取构造器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2644字,纯文字阅读大概需要4分钟。
内容图文
![Java反射《二》获取构造器](/upload/InfoBanner/zyjiaocheng/1063/2b9d19eebcd548478a3bd38b2512aeeb.jpg)
1 package com.study.reflect; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.InvocationTargetException; 5 6 /** 7 * 通过类来反射出构造器。 8 * @ClassName: ConstructorDemo 9 * @author BlueLake 10 * @date 2015年8月13日 下午5:16:07 11 */ 12 public class ConstructorDemo { 13 14 public static void main(String[] args) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { 1516 Class c = Student.class; 1718//getConstructors()public修饰的构造方法19 Constructor[] cons = c.getConstructors(); 20for(Constructor con:cons){ 21 System.out.println(con); 22/*23 * public com.study.reflect.Student(java.lang.String,int) 24 public com.study.reflect.Student() 25*/26 } 2728 System.out.println("---------------------------------"); 2930//getDeclaredConstructors()包括私有的方法31 Constructor[] cons2 = c.getDeclaredConstructors(); 32for(Constructor con:cons2){ 33 System.out.println(con); 34/*35 * private com.study.reflect.Student(java.lang.String) 36 public com.study.reflect.Student(java.lang.String,int) 37 public com.study.reflect.Student() 38*/39 } 40 System.out.println("------****************-----------"); 41//获取指定参数的构造器42 Constructor one = c.getConstructor(int.class); 43 System.out.println(one);//public com.study.reflect.Student(int)44 Class[] cls = one.getParameterTypes(); 45for(Class cl:cls){ 46 System.out.println(cl);//int47 System.out.println(cl.getName());//int48 System.out.println(cl.getSimpleName());//int49 } 5051 Constructor two = c.getDeclaredConstructor(String.class,int.class); 52 Class[] cls2 = two.getParameterTypes(); 53for(Class cl:cls2){ 54//输出类class标识和类全名。55 System.out.println(cl);//class java.lang.String 56//输出参数的类全名57 System.out.println(cl.getName());//java.lang.String 58//输出参数的类简化名59 System.out.println(cl.getSimpleName());//String60 } 6162//通过参数数组来获得构造器63 Class[] params = new Class[2]; 64 params[0] = String.class; 65 params[1] = int.class; 66 Constructor three = c.getDeclaredConstructor(params ); 676869/**70 * 通过获得的构造器来创建对象 71*/72 Object objone = one.newInstance(18); 73if(objone instanceof Student){ 74 Student stu = (Student)objone; 75 System.out.println(stu.getAge()); 76 } 7778 Object objtwo = two.newInstance("项羽",27); 79if(objtwo instanceof Student){ 80 Student stu = (Student)objtwo; 81 System.out.println(stu.getName()+"..."+stu.getAge());//项羽...2782 } 8384 Object objthree = three.newInstance("曹操",56); 85if(objthree instanceof Student){ 86 Student stu = (Student)objthree; 87 System.out.println(stu.getName()+"..."+stu.getAge());//曹操...5688 } 89 } 90 }
原文:http://www.cnblogs.com/tashaxing/p/7501344.html
内容总结
以上是互联网集市为您收集整理的Java反射《二》获取构造器全部内容,希望文章能够帮你解决Java反射《二》获取构造器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。