Java基础 (11) - 反射

能解决
Java中编译分为静态编译和动态编译。
静态编译:在编译时确定类型,绑定对象,即通过。
动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,从而降低类之间的藕合性。

能得到
实现Java反射机制的类都位于java.lang.reflect包中:
1、Class类:代表一个类
2、Field类:类的属性(成员变量)
3、Method类:类的方法
4、Constructor类:代表类的构造方法
5、Array类:提供了动态创建数组,以及访问数组的元素的静态方法
?

使用步骤
第一步:Class c = Class.forName("className”);//className必须为全名,也就是得包含包名
???Object obj=c.newInstance();//创建对象的实例????第二步:获取 Method:??   3.1 如何获取 Method:??     1). getDeclaredMethods得到 Method 的数组.??     2). getDeclaredMethod(String methondName, Class ... parameterTypes)?????   3.2 如何调用 Method??     1). 如果方法时 private 修饰的, 需要先调用 Method 的 setAccessible(true), 使其变为可访问??     2). method.invoke(obj, Object ... args);????第三步:关于 Field:??   4.1 如何获取 Field: getField(String fieldName)??   4.2 如何获取 Field 的值:???     1). setAccessible(true)??     2). field.get(Object obj)??   4.3 如何设置 Field 的值:??     field.set(Obejct obj, Object val)
参考:https://www.cnblogs.com/tech-bird/p/3525336.html???
各方案反射性能对比:https://www.cnblogs.com/zhishan/p/3195771.html

原文地址:https://blog.51cto.com/4397014/2436229

时间: 2024-10-14 07:00:51

Java基础 (11) - 反射的相关文章

Java基础11:Java泛型详解

Java基础11:Java泛型详解 泛型概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参). 泛型的本质是为了参数化类型(在不创建新的类型的

Java基础11 对象引用(转载)

对象引用 我们沿用之前定义的Human类,并有一个Test类: public class Test{    public static void main(String[] args){        Human aPerson = new Human(160);    }  class Human{    public Human(int h){        this.height = h;    }    public int getHeight(){        return this

Java基础11 对象引用

Java基础11 对象引用 我们之前一直在使用"对象"这个概念,但没有探讨对象在内存中的具体存储方式.这方面的讨论将引出"对象引用"(object reference)这一重要概念. 对象引用 我们沿用之前定义的Human类,并有一个Test类: public class Test { public static void main(String[] args) { Human aPerson = new Human(160); } } class Human {

Java基础增强-反射机制

1 反射机制简介 Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法.这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制.反射被视为动态语言的关键. 反射这一概念最早由编程开发人员Smith在1982年提出,主要指应用程序访问.检测.修改自身状态与行为的能力.这一概念的提出立刻吸引了编程界的极大关注,各种研究工作随之展开,随之而来引发编程革

JAVA基础知识|反射

一.理解反射 1.1.基础概念 反射:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. "运行状态",如何理解? "运行状态"体现了反射的应用场景,当一些类,不需要提前加载进JVM内存,而是在运行时根据需要进行加载的时候,就可以通过反射进行动态加载 1.2.如何理解反射? 学习过java的童鞋,肯定对spring.hibernate一

Java基础之—反射

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))   一.反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 要想解剖一个类,必须先要获取到该类的字节码文件对象.而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对

【转】Java基础之—反射

本文章来源:https://blog.csdn.net/sinat_38259539/article/details/71799078.感谢敬业的小码哥的总结. 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一.反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反

Java基础之反射

Java反射是指运行时获取类信息,进而在运行时动态构造对象.调用对象方法及修改对象属性的机制.百度百科的定义:“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 一.反射的用途 Java的反射机制可以做3件事:运行时创建对象.运行时调用方法.运行时读写属性.进而实现以下功能:调用一些私有方法,实现黑科技.比如双卡短信发送.设置状态栏颜色.自动挂电

java基础篇---反射机制

一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反射.通过反射,Java可以于运行时加载.探知和使用编译期间完全求和的类.生成其对象实体,调用其方法或者对属性设值.所以Java算是一个半动态的语言吧. 反射的概念: 在Java中的反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方