Java反射常用API汇总

“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性”

一、类对象的获取

1.通过对象获取

Object obj = new Object();
obj.getClass();

2.通过类名获取

Object.class;

3.通过类的路径名获取

Class.forName("com.metadata.Student");

二、类的实例化和构造函数

获取到的class对象可以直接通过clazz.newInstance()方法实例化,但是需要目标类有默认无参构造函数,不然会抛出异常。

在类没有默认无参构造函数,或者需要某个具体的构造函数来实例化的情况,需要通过Constructor类的newInstance()来完成。

1.获取公有构造函数,不包括父类

//Classpublic Constructor<?>[] getConstructors()
public Constructor<T> getConstructor(Class<?>... parameterTypes)

2.获取当前类构造函数,忽略修饰符

//Class
public Constructor<?>[] getDeclaredConstructors()
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

构造函数调用

//Constructor
public T newInstance(Object... initargs)
//忽略修饰符,强制调用public void setAccessible(boolean flag)

三、类成员变量的获取

1.获取公有变量,包括父类

//Class
public Field[] getFields()
public Field getField(String name)

2.获取当前类成员变量,忽略修饰符

//Class
public Field[] getDeclaredFields()
public Field getDeclaredField(String name)

成员变量赋值

//Field
//obj为实例对象
public void set(Object obj,Object value)
//忽略修饰符,强制调用public void setAccessible(boolean flag)

四、类方法的获取

1.获取公有方法,包括父类

//Class
public Method[] getMethods()
public Method getMethod(String name,
                        Class<?>... parameterTypes)

2.获取当前类方法,忽略修饰符

//Class
public Method[] getDeclaredMethods()
public Method getDeclaredMethod(String name,
                                Class<?>... parameterTypes)

方法调用

//Method
//obj为类实例化对象,如果为静态方法obj为Null
invoke(Object obj, Object... args)
//忽略修饰符,强制调用public void setAccessible(boolean flag)

原文地址:https://www.cnblogs.com/wanshiming/p/9180606.html

时间: 2024-08-04 00:08:24

Java反射常用API汇总的相关文章

Java 之常用API

常用API  1 API概述  2 Scanner类与String类  3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programming Interface) : 应用程序编程接口 编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑.向后跑.射门.抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写.但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作

Java的常用API

Object类 1.toString方法在我们直接使用输出语句输出对象的时候,其实通过该对象调用了其toString()方法. 2.equals方法方法摘要:类默认继承了Object类,所以可以使用Object类的equals方法boolean equals(Object obj)指示其他某个对象是否与此对象“相等”. equalse方法源码: public boolean equals(Object obj){ return (this == obj); } 参数: Object obj:可以

java自学-常用api

API(Application Programming Interface),应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.即jdk包里边写好的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可.所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们. 例子 ArrayList<String> list = new ArrayList<String>(); ArrayList就是一个

黑马程序员——java基础---常用API

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.String类 概念:String类代表字符串.Java 程序中的所有字符串字面值("abc")都作为此类的实例实现.又因为该类被final修饰,表明它不能被其它类所继承,其下的一系列关于字符串的操作方法也就无法被复写. 特点:字符串一旦被创建,将无法改变其值. 1 public class StringTest { 2 3 public static void main(Str

java反射常用类

测试实体类 public class TestClass { public String classInfo; public String getClassInfo() { return classInfo; } public TestClass(String classInfo) { this.classInfo = classInfo; System.out.println("invoke this param classInfo constructor."); } public

java进阶--常用API

一.Scanner 类 1.位于Java.util包中 2.作用:用于接收键盘录入数据 3.格式:Scanner sc = new Scanner(System.in) 4.常用方法:hasNextXxx():用于比较输入类型是否相匹配   nextXxx():用于获取数据 二.String类 1.位于Java.lang包中 2.字符串:就是多个字符组成的一串数据,也可以看成一个字符数组: API:A:字符串面值 ”abc“,也可以看成一个字符串对象:   B:字符串是常量,一旦被赋值,不能被改

VSTO之PowerPoint(PPT)插件开发常用API汇总

VSTO简介 VSTO(Visual Studio Tools for Office )是VBA的替代,使得开发Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visual studio开发环境中的众多功能和CLR提供的内存管理,垃圾回收等功能 额...这个是百度的介绍,手动滑稽!说白了就是用来开发office插件的. Office插件开发解决方案选择 最近由于工作原因,一直在看开发自定义的Office插件的解决方案,总共有如下几种 VBA --- Visual B

java之常用API

1 Scanner类 1.1 API的概述 API (Application Program Interface):应用程序接口:是Java提供很多类和接口以来帮助我们编程.我们在拿到一个API文档的时候,第一个要看包路径:第二看构造方法:第三看方法摘要. 1.2 引用类型的使用步骤 功能:可以实现键盘输入数据. 引用类型的一般使用步骤:(除了基本数据类型,都是引用类型,所以scanner也是一个引用类型) (1)导包 import 包路径.包名称: 特殊情况:在java的API中,只有java

Java Unsafe 常用API 例子。

1 线程挂起恢复 2 CAS操作 2 直接内存操作(非JVM内存) 3 实例化对象 4 直接操作对象属性 5 直接操作数组 示例代码如下 public class Player { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { ret