一:反射机制
通过对象获取它所属的类。反射机制的源头是Class类。
Class类
Class类的实例表示正在运行的Java应用程序中的类和接口。
二:获取Class类的实例的三种方法:
1. Class.forName("xxx.xxx.类名");
2. getClass() 返回运行时类
3. 类.class (Android中经常会用到)
三:Class类的常用方法:
1.public Field[] getFields() 返回所有public的字段
2.public Field[] getDeclaredFields() 返回所有声明的字段(包括private字段)
3.public Method[] getDeclaredMethods() 返回声明的所有方法(不包括构造方法)
4.public Constructor>[] getDeclaredConstructors() 返回所有构造方法
5.Constructor> getDeclaredConstructor(Class>... xxx)获取某个具体的构造方法
6.public T newInstance()
创建此Class对象所表示的类的一个新实例。类中必须含有无参构造!
7.public Method getMethod(String name,
Class>... parameterTypes)
name - 方法名
parameterTypes - 参数列表
四:Field类的常用方法
public String getName() 返回此Field对象表示的字段的名称。
getModifiers() 获取字段修饰符的整数形式
getType() 获取字段类型的Class形式
getName() 获取字段名称
五:Method类常用方法
getModifiers() 获取方法修饰符的整数形式
Class>[] types=method.getParameterTypes(); 获取所有的参数类型
getReturnType() 获取返回值类型
getName() 获取方法名称
invoke(Object obj,Object... args) 调用此方法,obj:调用对象 args...:传递的参数
六:Constructor类(代表构造方法)
public T newInstance(Object... initargs)调用有参构造实例化对象
七:Annotation注解:
@Override
检查子类是否正确复写了父类的某个方法。
@SuppressWarnings(xxx)
压制警告
@Deprecated
不建议使用的方法或类
补充:
一:对象克隆
Object类的方法:
protected Object clone() 创建并返回此对象的一个副本。
只有实现了Cloneable接口的类的对象才能被克隆。
二:Jar包
JAR(Java Archive)
打Jar包的方法:jar -cvf jar包名称.jar 要打包的文件夹
c:(create)新建jar包
v:(verbose) 显示打包的详细过程
f:(file) 打包文件