您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
深入浅析Java中的反射机制?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
反射
反射可以使我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码链接。反射允许我们在编写和执行时,使我们的代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码。
反射机制作用
反射的使用
反射机制获取类的三种方式
Class c1 = Class.forName("com.webb.basis.reflect.Demo"); // 一般采用这种方式 Class c2 = Demo.class; Class c3 = new Demo().getClass();
创建对象:获取类之后我们来创建它的对象,利用newInstance()
c1.newInstance(); // 调用了Demo的无参构造方法
获取属性
// 获取所有属性 Field[] fields = c1.getDeclaredFields(); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(Modifier.toString(c1.getModifiers()) + " class " + c1.getSimpleName() + "{\n"); for (Field field : fields) { stringBuffer.append("\t"); stringBuffer.append(Modifier.toString(field.getModifiers()) + " "); stringBuffer.append(field.getType().getSimpleName() + " "); stringBuffer.append(field.getName() + ";\n"); } stringBuffer.append("}"); System.out.println(stringBuffer); // 获取指定的属性 Field field = c1.getDeclaredField("name"); // 不存在的话会报错
获取方法和构造方法
方法关键字 getDeclaredMethods() getReturnType() getParameterTypes() getDeclaredMethod() 构造方法关键字 getDeclaredConstructors() getDeclaredConstructor()
setAccessible(true);
对属性设置访问权限,当类中的变量为private时,必须设置此项。
关于深入浅析Java中的反射机制问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。