Java 反射的用法 有关Class类的解释


package com.imooc.test;

public class ClassDemo1 {    public static void main(String[] args) {        Foo fool = new Foo();//foo1就表示出来了       //Foo 这个类也是一个实例对象,Class类的实例对象,如何表示呢        //任何一个类都是Class的实例对象,这个实例对象有三种表示方式        //第一种表示方式---> 实际在告诉我们任何一个类都有一个隐含的静态成员变量class        Class cl = Foo.class;        //第二种表达方式,已知该类的对象通过getClass方法        Class c2 =  fool.getClass();        /* 官网解释,c1,c2 表示了Foo 类的类类型(class type)         * 万事万物皆对象         * 类也是对象,是Class类的实例对象         * 这个对象我们称为该类的类类型        */        //不管c1 or c2都代表了Foo 类的类类型,一个类只可能是Class类的一个实例对象        System.out.println(cl == c2);        //第三种表达方式        Class c3 = null;        try {            c3 = Class.forName("com.imooc.test.Foo");        } catch (ClassNotFoundException e) {            e.printStackTrace();        }        System.out.println(c2 == c3);        //我们完全可以通过类的类类型创建该类的对象实例,通过c1.c2.c3创建Foo 的实例        try {            Foo foo = (Foo) cl.newInstance();//前提需要有无参数的构造方法            foo.print();        } catch (InstantiationException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }

}}class Foo{    void print(){        System.out.println("foo 打印输出");    }}
 

原文地址:https://www.cnblogs.com/gylhaut/p/8824394.html

时间: 2024-11-09 17:27:51

Java 反射的用法 有关Class类的解释的相关文章

java反射--Field用法实践

Field是一个位于java.lang.reflect包下的类,用来描述类的属性信息,功能主要包括: 获取哦大年对象的成员变量类型 对成员变量重新设值 Field类对象: Class.getFields(): 获取类中public类型的属性,返回一个包含某些 Field 对象的数组,该数组包含此 Class 对象所表示的类或接口的所有可访问公共字段getDeclaredFields(): 获取类中所有的属性(public.protected.default.private),但不包括继承的属性,

java反射机制详解 及 Method.invoke解释 getMethod

JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法:生成动态代理.1. 得到某个对象的属性 public Object getProperty(Obje

java反射机制详解 及 Method.invoke解释

JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法:生成动态代理.1. 得到某个对象的属性 Java代码   public Object getProp

java反射的用法

反射(运行时的类信息),在java里面得到了大量的使用,尤其是在一些框架里面(注解等等),多多少少都会用到反射,了解java的反射,对我们以后学习框架和写框架都会起到非常的重要! Class类与java.lang.reflect类库一起对反射的概念进行了支持,该类库包括了FieId.Method以及Constructor类.这些类型的对象是由JVM在运行时创建的,用以表示未知类里对应的成员.这样你就可以使用Constructor创建新的对象,用get()和set()方法读取和修改与FieId对象

Java反射第一课认识Class类

Class类 1.在面向对象的世界里,万事万物皆对象 (1)先来理解两个问题: (1)Java语音中,静态的成员,普通数据类型是不是对象? [普通的数据类型int a = 5 不是面向对象的,但是它有包装类弥补了] [java静态的东西不是面向对象的,静态的东西不是某个对象的他是属于类的] 所以在面向对象的世界里,万事万物皆对象 (2)类是谁的对象? 类是对象,类是java.lang.Class类的实例对象 Class类的实例对象是什么?---我们每一个对象所属的类就是Class类的实例对象(也

java反射系列五之获取类的完整结构

代码示例 Person类 package reflect; @MyAnnotation(value = "guozi") public class Person extends Creature<String> implements Comparable,MyInterface{ public String name; private int age; public Person() { super(); // TODO Auto-generated constructor

Java 反射经常用法演示样例

<pre name="code" class="java">import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; class Point{ int x; private int y; public Point(){ x = 1; y = 2; } public void setX(int x) { thi

Java反射机制浅析

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载.探知.使用

java反射机制简介

1.字节码.所谓的字节码就是当java虚拟机加载某个类的对象时,首先需要将硬盘中该类的源代码编译成class文件的二进制代码(字节码),然后将class文件的字节码加载到内存中,之后再创建该类的对象 2.java反射的基础是Class类(注意不是小写的class),Class类实例代表着内存中的一份字节码.常见的获取Class类对象的方法如下(第一种为对象的方法,第二种为类的方法): Dog dog = new Dog(); Class dogClass = dog.getClass(); Cl