java基础之反射(2.class类的使用)
来源:互联网 发布:选车软件 编辑:程序博客网 时间:2024/04/29 03:58
本章主旨: 可以使用class类完成对象的实例化操作
可以通过construct类调用有参构造方法完成对象的实例化操作
class主要反射的源头 不光可以取得对象所在类的信息也可以通过class方法进行对象实例化操作
可以通过construct类调用有参构造方法完成对象的实例化操作
class主要反射的源头 不光可以取得对象所在类的信息也可以通过class方法进行对象实例化操作
正常情况下使用new关键字为对象实例化,如果现在已经实例化好了Class对象则就可以通过提供的
以下代码进行演示 必须是无参构造
package KownClass;class person {private String name;// name属性private int age; // age属性public String getName() {return name;}//其中必须存在无参构造public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "person [name=" + name + ", age=" + age + "]";}}public class test1 {public static void main(String[] args) {Class<?> c = null;// 指定泛型// 以下的操作形式是在开发中最常用的一种形式try {// 传入完整的包名 名称实例化对象c = Class.forName("KownClass.person");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}person per=null;//声明person 对象try {per=(person) c.newInstance();//实例化对象} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}per.setName("JDK");per.setAge(22);System.out.println(per);//内容输出 调用tostring}}可以发现即使不使用关键字new 对象也可以进行实例化操作 反射的作用 因为
per=(person) c.newInstance();//已经实例化对象
在使用有参构造方法时
1.通过class为getConstruct取得本类方法的全部方法
2.向构造方法传递一个对象数组进去,里面包含着构造方法的各个参数
3.之后通过construct实例化对象
package KownClass;import java.lang.reflect.Constructor;class person {private String name;// name属性private int age; // age属性public String getName() {return name;}public person(String name, int age) {super();this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "person [name=" + name + ", age=" + age + "]";}}public class test1 {public static void main(String[] args) {Class<?> c = null;// 指定泛型// 以下的操作形式是在开发中最常用的一种形式try {// 传入完整的包名 名称实例化对象c = Class.forName("KownClass.person");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}person per = null;// 声明person 对象//1.向构造方法传递一个对象数组进去,Constructor<?>cons[]=null;/*之后通过construct实例化对象*/cons=c.getConstructors();try {//2.里面包含着构造方法的各个参数per = (person)cons[0].newInstance("JDK",22);// 实例化对象} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}/*per.setName("JDK");per.setAge(22);*/System.out.println(per);// 内容输出 调用tostring}}
0 0
- java基础之反射(2.class类的使用)
- JAVA反射之Class类的使用
- Java(反射的基础Class类)
- java基础之反射(1.认识class类)
- (Java基础--反射)透彻分析反射的基础--Class类
- 19、Java入门—反射之Class类的使用
- JAVA学习之反射(1):Class类和java.lang.reflect包的使用
- java基础-反射2(反射,反射操作对象,Class对象的使用,类型信息的获取)
- Java反射(一)----- Class类的使用
- Java反射(一):Class类的使用
- Java-反射(一) Class类的使用
- java反射学习笔记(1)-----Class类的使用
- Java反射机制的基础java.lang.Class类
- Java反射之Class类
- java反射 之Class类
- java反射之Class类
- 黑马程序员--Java基础加强学习笔记之Class类、反射(Reflect)
- Java反射的基础——Class类
- HDFS Users Guide
- 高仿手机QQ5.0界面框架
- wmware装linux时,提示‘Unsupported Hardware Detected’
- Spark Streaming:大规模流式数据处理的新贵
- 扶不起的腾讯微博与腾讯微视
- java基础之反射(2.class类的使用)
- 不解的现象,chuser锁定一个用户会把另一个用户也锁定
- UNIMODAL PALINDROMIC DECOMPOSITIONS - POJ 1221 UVaLive 2560 dp
- Build HOL4 on Ubuntu
- HDU 2795 线段树想法题 (第4天)
- 瀑布流,并且解决定位和容器高度自适应问题,随意放哪都可以用。
- WIN8.1 设置163邮件
- java.lang.NoClassDefFoundError分析
- 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题