-
Class.forName()方法
Class.forName(xxx.xx.xx)返回的是一个类,就是这个类本身
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载初始化指定的类,例如加载数据库驱动 -
isAnnotationPresent()方法
A.isAnnotationPresent(B.class) //B类型的注解是否在A类上,B是一个注解 -
setAccessible()方法
public class Main {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.test.accessible.AccessibleTest");
AccessibleTest at = new AccessibleTest();
at.setId(1);
at.setName("AT");
for (Field f : clazz.getDeclaredFields()) {
f.setAccessible(true);//AccessibleTest类中的成员变量为private,故必须进行此操作
System.out.println(f.get(at));//获取当前对象中当前Field的value
}
}
}
- getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 - getClass()返回Class类型的对象。返回的是内存中实实在在存在的这个类,从而实现获取此类的构造方法等,这些是通过new对象做不到的
- 泛型知识 参考大佬链接:https://www.cnblogs.com/coprince/p/8603492.html
- instanceof 用来测试一个对象是否为一个类的实例
详情见大佬链接:https://www.cnblogs.com/ysocean/p/8486500.html
注:不能对确切的泛型类型使用instanceof操作。如下面的操作是非法的,编译时会出错。
if(ex_num instanceof Generic){ } - Java中newInstance()和new()区别
详情见大佬链接:https://www.cnblogs.com/zouxiangzhongyan/p/10722118.html