十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
为巴楚等地区用户提供了全套网页设计制作服务,及巴楚网站建设行业解决方案。主营业务为网站设计制作、成都网站设计、巴楚网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!阅读目录
Java反射API
Java反射指的是在运行状态时,能够获取类的属性和方法或者修改类运行时行为的过程。
java.lang.Class类提供了很多方法用于获取元数据、检查和改变类运行时的行为。
Java的反射主要涉及java.lang和java.lang.reflect包下的类。
反射应用场景举例
java.lang.Class类
java.lang.Class主要提供了以下两个功能:
java.lang.Class类常用方法
Method | Description |
---|---|
1) public String getName() | 返回类名 |
2) public static Class forName(String className)throws ClassNotFoundException | 加载类并返回Class对象 |
3) public Object newInstance()throws InstantiationException,IllegalAccessException | 创建实例对象 |
4) public boolean isInterface() | 判断是否是接口 |
5) public boolean isArray() | 判断是否是数组 |
6) public boolean isPrimitive() | 判断是否是原始数据类型 |
7) public Class getSuperclass() | 返回父类Class引用 |
8) public Field[] getDeclaredFields()throws SecurityException | 返回类的成员属性字段数组 |
9) public Method[] getDeclaredMethods()throws SecurityException | 返回类的方法数组 |
10) public Constructor[] getDeclaredConstructors()throws SecurityException | 返回类的构造方法数组 |
11) public Method getDeclaredMethod(String name,Class[] parameterTypes)throws NoSuchMethodException,SecurityException | 返回类中指定参数类型的方法 |
怎样获取Class对象
有三种方式,如下:
forName()方法示例
可用于动态加载,当你知道类的全限定名时,可以使用该方式。注意原始数据类型不适用该方法;
package tmp; class Simple { } public class Test { public static void main(String args[]) throws ClassNotFoundException { Class<?> c = Class.forName("tmp.Simple"); System.out.println(c.getName()); System.out.println(c.getSimpleName()); } }