android基础篇------------java基础(5) 类的反射

类的反射机制:

先来一段代码,体验一下什么是类的反射机制。

public static void main(String[] args) throws Exception {
	//第一种方法
	Class class1 = Person.class;
	//调用无参构造函数
	Person person1 =(Person)class1.newInstance();
	
	//第二种方法
	Class class2 = Class.forName("com.zyy.Person");//切记:要用完全限定类名
	Person person2 = (Person)class2.newInstance();
	Constructor con = class2.getDeclaredConstructor(String.class,int.class);
	//con.setAccessible(true); //就算是私有的构造方法,通过true也是可以访问的。
	Person per2 = (Person) con.newInstance("关羽",20);
	System.out.println(per2);
}

大白话:类得反射就是从class---》类名.java,这样就可以使用class里面的类了。

Java的类反射所需要的类并不多,它们分别是:Field、Constructor、Method、Class、Object,下面我将对这些类做一个简单的说明。
Field类:提供有关类或接口的属性的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)属性或实例属性,简单的理解可以把它看成一个封装反射类的属性的类。
Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。这个类和Field类不同,Field类封装了反射类的属性,而Constructor类则封装了反射类的构造方法。
Method类:提供关于类或接口上单独某个方法的信息。所反映的 方法可能是类方法或实例方法(包括抽象方法)。 这个类不难理解,它是用来封装反射类方法的一个类。
Class类:类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。
Object类:每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

扫一扫下面的二维码,关注我们,每天分享专业的技术文章,让您利用碎片时间,分分钟提升自己的bigger。

android基础篇------------java基础(5) 类的反射_第1张图片

你可能感兴趣的:(android基础篇------------java基础(5) 类的反射)