对象包装与反射
对象包装,基本类型装换为对象,
对应名字 :Interger,Long,Double,Byte,Character,Void和Boolean,派生与Number,java虚拟机在使用基本类型时都会自动装箱和自己拆箱比如
list.add(3) – list.add(Integer.valueOf(3))
int n = list.get(i) – int n = list.get(i).inValue();
包装对象可能是null要小心
Integer常用方法
int parseInt(String s,int radix),返回一个int
s大家都懂,radix是进制数,不填默认十进制
枚举类
比较直接用 == 不用用 equals
Class类
Class类的类
表示正在运行的Java应用程序中的类和接口
forName
public static 类<?> forName(String className)
throws ClassNotFoundException
返回与给定字符串名称的类或接口相关联的类
对象 返回一个Class对象
public T newInstance()
throws InstantiationException,
IllegalAccessException
创建由此类
对象表示的类的新实例。
该类被实例化为一个具有空参数列表的new
表达式。
如果类尚未初始化,则初始化该类。
请注意,此方法传播由nullary构造函数抛出的任何异常,包括已检查的异常。 使用此方法有效地绕过编译器异常检查,否则将由编译器执行。 Constructor.newInstance
方法通过在(检查) InvocationTargetException
中包装构造函数抛出的任何异常来避免此问题
反射
java.lang.reflect包中有Field,Method和Construct分别用于描述类的域,方法和构造器,
公有方法getName,用来返回项目的名称
公有方法 getModifiers ,返回int,public和static的使用情况
Field getType方法,返回域所属类型Class对象
Method和Construct,getType方法 报告类型参数方法
Class类
getFields,getMothods,getConstructors,返回类中public域,方法,构造器数组
getDeclaredFields,getDeclaredMothods,getDeclaredConstructors,返回类中全部域,方法,构造器数组
invoke方法 调用method方法,第一个参数比较抽象,但似乎并没有什么用 为代理的对象