Java基础 (11) - 反射

发布时间:2020-06-20 03:55:02 作者:lm8751
来源:网络 阅读:115

能解决
Java中编译分为静态编译和动态编译。
静态编译:在编译时确定类型,绑定对象,即通过。
动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,从而降低类之间的藕合性。

能得到
实现Java反射机制的类都位于java.lang.reflect包中:
1、Class类:代表一个类
2、Field类:类的属性(成员变量)
3、Method类:类的方法
4、Constructor类:代表类的构造方法
5、Array类:提供了动态创建数组,以及访问数组的元素的静态方法
 

使用步骤
第一步:Class c = Class.forName("className”);//className必须为全名,也就是得包含包名
   Object obj=c.newInstance();//创建对象的实例
  
第二步:获取 Method:
    3.1 如何获取 Method:
      1). getDeclaredMethods得到 Method 的数组.
      2). getDeclaredMethod(String methondName, Class ... parameterTypes)
  
    3.2 如何调用 Method
      1). 如果方法时 private 修饰的, 需要先调用 Method 的 setAccessible(true), 使其变为可访问
      2). method.invoke(obj, Object ... args);
  
第三步:关于 Field:
    4.1 如何获取 Field: getField(String fieldName)
    4.2 如何获取 Field 的值: 
      1). setAccessible(true)
      2). field.get(Object obj)
    4.3 如何设置 Field 的值:
      field.set(Obejct obj, Object val)
参考:https://www.cnblogs.com/tech-bird/p/3525336.html 
 
各方案反射性能对比:https://www.cnblogs.com/zhishan/p/3195771.html

推荐阅读:
  1. Python使用反射进行oracle数据库监控
  2. Smobiler针对百度文字识别SDK动态编译与运行

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

反射 ava j

上一篇:卸载Oracle11g步骤详解

下一篇:centos 安装 php5.6

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》