zoukankan      html  css  js  c++  java
  • java反射

    反射定义:

    程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。一个类有多个组成部分,例如:成员变量、方法、构造方法等,反射就是加载类,并解剖出类的各个组成部分。

    功能作用:

    反射机制主要提供以下功能:
     
    ①在运行时判断任意一个对象所属的类;

    ②在运行时构造任意一个类的对象;

    ③在运行时判断任意一个类所具有的成员变量和方法;

    ④在运行时调用任意一个对象的方法;

    ⑤生成动态代理。
     
    与反射有关的类:
    java.lang.Class;
    java.lang.reflect.Constructor;
    java.lang.reflect.Field;
    java.lang.reflect.Method;
    java.lang.reflect.Modifier;
     

    使用步骤:

    导入java.lang.relfect包

    三个步骤

            第一步,是获得你想操作的类的java.lang.Class对象

            第二步,是调用诸如getDeclaredMethods的方法

            第三步,使用反射API来操作这些信息

    获得Class对象的方法

    1、如果一个类的实例已经得到,你可以使用

    Class c =对象.getClass()

    2、如果你在编译期知道类的名字,你可以使用如下的方法

    Class c = java.awt.Button.class

    3、如果类名在编译期不知道,但是在运行期可以获得,你可以使用下面的方法

    Class c = Class.forName(str)

    反射优点: 
    (1)能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。 
    (2)与Java动态编译相结合,可以实现无比强大的功能 


    反射缺点: 
    (1)使用反射的性能较低 
    (2)使用反射相对来说不安全 
    (3)破坏了类的封装性,可以通过反射获取这个类的私有方法和属性 

  • 相关阅读:
    编译安装mysql-5.6.36
    MYSQL数据库基础篇
    MYSQL数据库初学者必看
    Centos7下安装与卸载Jdk1.8
    Linux与Window之间的上传与下载
    MySQL主从搭建
    zabbix通过插件percona进行监控MySQL
    suse系统关闭防火墙
    编译安装zabbix3.0
    centos7安装tomcat
  • 原文地址:https://www.cnblogs.com/thingk/p/10129918.html
Copyright © 2011-2022 走看看