码迷,mamicode.com
首页 > 编程语言 > 详细

Java反射之基础概念

时间:2018-07-15 16:11:28      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:4.4   over   package   类型   反射   col   实例   oid   return   

0.实例准备

package com.blueStarWei.invoke;

public class Student {
    private String name;
    
    public Student() { }

    public Student(String name) {
        super();
        this.name = name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + "]";
    }
}

 

 

1. 什么是反射

  反射是在运行时(非编译时)动态获取类型的信息(比如:接口信息、成员信息、方法信息等),然后根据这些获取的信息创建对象、访问修改成员、调用方法。

 

2. 获取Class类的方式(3种):

//方式一:Class.forName("包名.类名")
Class stu1 = Class.forName("com.blueStarWei.invoke.Student");
//方式二:类名.class
Class stu2 = Student.class;
//方式三:实例.getClass()
Class stu3 = new Student().getClass();

 

3. 创建实例对象

Student student = (Student) stu.newInstance();

备注:1)该方法通过无参构造的方式创建实例

           2)New一个对象的时候,类可以没有被加载;使用newInstance()方法的时候,必须保证这个类已经加载且已经连接【通过Class.forName()实现】。

Class clazz = Class.forName("com.blueStarWei.invoke.Student");
Student student1 = (Student) clazz.newInstance();
//等价于
Student student2 = new Student();

 

4. 反射的作用

  4.1 判断任意一个对象所属的类;

  4.2 判断任意一个类所具有的成员变量和方法;

  4.3 调用任意对象的方法;

  4.4 构造任意一个类的对象;

  4.5 生成动态代理操作。

Java反射之基础概念

标签:4.4   over   package   类型   反射   col   实例   oid   return   

原文地址:https://www.cnblogs.com/BlueStarWei/p/8976822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!