首页 / JAVA / JAVA学习--反射构造器操作
JAVA学习--反射构造器操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA学习--反射构造器操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3072字,纯文字阅读大概需要5分钟。
内容图文
![JAVA学习--反射构造器操作](/upload/InfoBanner/zyjiaocheng/1227/bf7bb803c53f40df823f63912cb236a7.jpg)
1 @Test 2 public void test1() throws Exception{ 3 String className = "com.atguigu.java.Person"; 4 Class clazz = Class.forName(className); 5//创建对应的运行时类的对象。使用newInstance(),实际上就是调用了运行时类的空参的构造器。 6//要想能够创建成功:①要求对应的运行时类要有空参的构造器。②构造器的权限修饰符的权限要足够。 7 Object obj = clazz.newInstance(); 8 Person p = (Person)obj; 9 System.out.println(p); 10 }
1 @Test 2 public void test2() throws ClassNotFoundException{ 3 String className = "com.atguigu.java.Person"; 4 Class clazz = Class.forName(className); 5 6 Constructor[] cons = clazz.getDeclaredConstructors(); 7for(Constructor c : cons){ 8 System.out.println(c); 9 } 10 }
1 // 调用指定的构造器,创建运行时类的对象 2 @Test 3 public void test3() throws Exception{ 4 String className = "com.atguigu.java.Person"; 5 Class clazz = Class.forName(className); 6 7 Constructor cons = clazz.getDeclaredConstructor(String.class,int.class); 8 cons.setAccessible(true); 9 Person p = (Person)cons.newInstance("罗伟",20); 10 System.out.println(p); 11 }
1 class Person extends Creature<String> implements Comparable,MyInterface{ 2public String name; 3privateint age; 4int id; 5//创建类时,尽量保留一个空参的构造器。 6public Person() { 7 super(); 8// System.out.println("今天天气很闷热"); 9 } 10public Person(String name) { 11 super(); 12this.name = name; 13 } 14private Person(String name, int age) { 15 super(); 16this.name = name; 17this.age = age; 18 } 19public String getName() { 20return name; 21 } 22publicvoid setName(String name) { 23this.name = name; 24 } 25publicint getAge() { 26return age; 27 } 28publicvoid setAge(int age) { 29this.age = age; 30 } 3132publicint getId() { 33return id; 34 } 35publicvoid setId(int id) { 36this.id = id; 37 } 38 @MyAnnotation(value = "abc123") 39publicvoid show(){ 40 System.out.println("我是一个人!"); 41 } 4243private Integer display(String nation,Integer i) throws Exception{ 44 System.out.println("我的国籍是:" + nation); 45return i; 46 } 47 @Override 48public String toString() { 49return"Person [name=" + name + ", age=" + age + "]"; 50 } 51 @Override 52publicint compareTo(Object o) { 53// TODO Auto-generated method stub54return0; 55 } 5657publicstaticvoid info(){ 58 System.out.println("中国人!"); 59 } 6061class Bird{ 6263 } 6465 }
1 import static java.lang.annotation.ElementType.CONSTRUCTOR; 2 import static java.lang.annotation.ElementType.FIELD; 3 import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 4 import static java.lang.annotation.ElementType.METHOD; 5 import static java.lang.annotation.ElementType.PARAMETER; 6 import static java.lang.annotation.ElementType.TYPE; 7 8import java.lang.annotation.Retention; 9import java.lang.annotation.RetentionPolicy; 10import java.lang.annotation.Target; 1112@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) 13@Retention(RetentionPolicy.RUNTIME) 14public @interface MyAnnotation { 15 String value(); 16 }
1 public class Creature<T>{ 2publicdouble weight; 34publicvoid breath(){ 5 System.out.println("呼吸!"); 6 } 7 }
1import java.io.Serializable; 23publicinterface MyInterface extends Serializable{ 45 }
原文:http://www.cnblogs.com/zhangfan94/p/4273229.html
内容总结
以上是互联网集市为您收集整理的JAVA学习--反射构造器操作全部内容,希望文章能够帮你解决JAVA学习--反射构造器操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。