反射

简介: // 加载这个类的class文件 Class c = Class.forName(“com.

// 加载这个类的class文件
Class c = Class.forName(“com.sxtt.User”);
// 创建一个实例化的对象
User u = (User) c.newInstance();
// 类的全路径
System.out.println(c.getName());
// 类的名称
System.out.println(c.getSimpleName());
// 返回类的权限
System.out.println(Modifier.toString(c.getModifiers()));
// 判断是否是接口
System.out.println(c.isInterface());
// 拿到父类的全称
System.out.println(c.getSuperclass().getName());
// 父类的名字
System.out.println(c.getSuperclass().getSimpleName());
// 获取类中的public的属性
Field f = c.getField(“name”);
System.out.println(f.getName());
// 获取所有权限类型的属性
Field age = c.getDeclaredField(“age”);
System.out.println(age.getName());

    // 获取所有public的属性
    Field[] fs = c.getFields();
    // 获取所有类型的所有属性
    Field[] dfs = c.getDeclaredFields();
    System.out.println(dfs.length);
    System.out
            .println("======================================================");
    // 获取所有公共方法包含父类和接口
    Method[] ms = c.getMethods();
    for (Method m : ms) {
        System.out.println(m.getName());
    }
    System.out
            .println("======================================================");
    // 通过方法名获取公共方法
    Method m = c.getMethod("say");
    System.out.println(m.getName());
    System.out
            .println("======================================================");
    // 获取所有本类的方法
    Method[] bms = c.getDeclaredMethods();
    for (Method bm : bms) {
        System.out.println(bm.getName());
    }
    System.out
            .println("======================================================");
    // 通过名字获取本类的方法
    Method bm = c.getDeclaredMethod("run");
    System.out.println(bm.getName());
    // 调用本类的带参数的方法
    Method cm = c.getDeclaredMethod("run", String.class);
    cm.invoke(u, "张三");
}
相关文章
反射
何为反射?在运行状态时,对于任何一个类,都能够动态获取这个类得所有方法和属性(私有,公有,受保护),都能够调用任意一个方法和属性。
49 0
|
5月前
|
缓存 安全 Java
反射带来的问题
反射带来的问题
39 0
|
5月前
|
存储 缓存
优美的使用反射,哪些场景推荐使用反射,哪些不推荐使用
优美的使用反射,哪些场景推荐使用反射,哪些不推荐使用
47 0
|
8月前
|
API C# 数据库
C#反射详解
C#反射详解
79 0
|
Java 数据库连接 数据库
JVAVEE反射
JVAVEE反射
59 0
|
存储 Java 索引
反射理解
个人对反射的学习理解与代码
78 0
|
缓存 前端开发 JavaScript
一起来学反射(上)
一起来学反射
111 0
|
设计模式 安全 Java
一起来学反射(下)
一起来学反射
106 0
|
Java
简单理解下反射是啥
《基础系列》
115 0
反射小练习
通过反射创建级联对象