直接代码理解

主要说明:反射的三种方式,反射方法。调用方法

public static void main(String[] args) throws Exception {getClassWays();Product product = (Product) Main.generateObj("demo.reflection.Product");product.doStr();System.out.println(product);Class clz = Product.class;//Declare:声明,因为一个类的方法可以简单的分为//自己写的(Declare)和父类继承过来的//getDeclareMethods是得到自己声明的所有方法Method[] declaredMethods = clz.getDeclaredMethods();for (Method declaredMethod : declaredMethods) {System.out.println(declaredMethod.getName());}//得到某一个具体方法。//得到某一个具体的方法,传递的参数,第一个是方法的名字//第二个是方法的参数类型,有多少个就传递多少个。如果没有就不用写。//为啥这样设计,是因为java语言有重载这种技术Method doStr = clz.getDeclaredMethod("doStr",String.class);//invoke:调用,方法的调用分为实例方法的调用和静态方法的调用//因为现在得到的是一个实例方法,所以需要传递对象//invoke方法的第一个参数就是对象,第二个参数就是方法的一系列的参数值doStr.invoke(product,"你好");System.out.println(doStr);}public static Object generateObj(String className) throws Exception {//这种创建方法,能成功的前提是此类有一个默认构造函数//不然会有异常:NoSuchMethodExceptionClass clz = Class.forName(className);Object instance = clz.newInstance();return instance;}public static void getClassWays() throws Exception{//第一种方法是,依据类来得到其class对象Class c1= Product.class;//第二种:利用forName方法加载类,并返回类对象//如果此类已经被加载过,就不会重复加载Class c2 = Class.forName("demo.reflection.Product");//第三种方法:依据类的对象得到其类对象Product p = new Product();Class c3 = p.getClass();}
}

转载于:https://www.cnblogs.com/LixiaoFeng1650062546/p/11377908.html

反射--笔记(第一篇)相关推荐

  1. 读书笔记第一篇:知乎高赞回答

    自从今年以来,生活发生了极大变化,自己也进入了30大关,开始奔四了.最近总觉得自己一事无成,无论物质还是精神上都没有得到满足,而且自己一个游戏程序员,越来越觉得逐渐被淘汰.所以想到的第一个挣扎的办法, ...

  2. 《鸟哥的Linux私房菜》个人学习笔记-第一篇

    <鸟哥的Linux私房菜>个人学习笔记-基础篇 这是一篇一个linux菜鸡自学的笔记 csdn上的各位大手子们好,本人实习生一枚最近想自己深入学习下linux,所以在社区里发博客,希望能记 ...

  3. bootloader学习笔记---第一篇以stm32为例

    目录 一.bootloader的任务 二.bootloader开发的基础知识 段的概念 重定位的概念 散列文件的概念 异常向量(待补充) 三.最简单的bootloader程序 四.使用汇编跳转 五.备 ...

  4. android内存加载dex,安卓8.1版本dex加载流程笔记--第一篇:oatfile,oatdexfile与dexfile...

    本帖最后由 L剑仙 于 2020-3-1 18:53 编辑 看雪发一遍了,在52再发一次 菜鸟最近初学脱壳,必须得先搞明白dex的加载流程,才能搞懂哪里到了脱壳的时机.n6装的8.1,最近跟了一遍8. ...

  5. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  6. 《人件集》阅读笔记第一篇

    <人件集>01 第一部分--团队开发 本部分主要讲了在决策时,团队决策相关建议.研究表明,集体的决策比集体中的个体独立做选择更具有风险倾向.在做决策和解决问题时,团队有一种均衡的效果,这会 ...

  7. 编程学习笔记(第一篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(1)...

    软件工程的课程,对于从事大中型的软件开发是至关重要的一门课程. <面向对象技术高级课程>深入.系统.完整地讲解当今主流的面向对象软件开发方法的分析.设计.实现及重构方法,深入讲解UML语言 ...

  8. python求最小值不能使用min和sotred_Python随手笔记第一篇(2)之初识列表和元组...

    Python中,列表和元组是一种数据结构:序列,序列中的每个元素都被分配一个序号,元素的位置,第一原元素的位置为0,因此类推.序列是最基本的数据结构,列表和元组他们之间具有一定的区别,即列表可以修改, ...

  9. daliu_IT学习Android笔记第一篇--Android是什么?安卓的logo来源?安卓的发展过程?

    Android是什么?安卓的logo来源?安卓的发展过程?   安卓的名字: Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公 ...

最新文章

  1. Linux软件安装包中devel与非devel包之间的区别
  2. 如何用Curl 来post xml 数据
  3. JAVA构造器的实际使用
  4. 【学习笔记】HTTPS概述
  5. 第十章 某些算法的分治法解释
  6. uni-app 调用接口封装文档
  7. 求从 1 到 100 之间所有奇数的平方和
  8. 给Android程序员的一些面试建议,帮你突破瓶颈
  9. hive表列字段显示
  10. 【Shiro第二篇】SpringBoot + Shiro实现用户身份认证功能
  11. 主角连击敌人处理:连击次数的显示(图片数字字体)---1
  12. index ffs、index fs原理考究
  13. 计算机主机如何睡眠,电脑如何设置睡眠
  14. 创建自己免费的论坛、博客网站
  15. 鹰眼智客地图采集,想采哪里采哪里。
  16. Low-Rank Solution of Lyapunov Equations(二)CF-ADI算法
  17. 怎样用cmd创建Windows计划任务
  18. Unity文字冒险游戏项目实战
  19. 原生php多表查询方法,ThinkPHP多表联合查询的常用方法
  20. 字符指针和整形指针简单分析,*,的作用。

热门文章

  1. java非阻塞io流_阻塞式和非阻塞io流初认识
  2. java里面string什么意思_java中string什么意思
  3. c 子类对象 访问父类对象受保护成员_面向对象三大特征: 继承
  4. c++ 返回空对象_python中file对象的常用方法
  5. Java实现穷举_LeetCode 28:实现strStr() Implement strStr()
  6. jdk8銝要onematch_JDK8老特性详解(二)
  7. ASP.NET的ASHX一般处理程序中Session为null且不能赋值
  8. jsp中提供的四种属性范围
  9. Eclipse的.properties文件输出中文成unicode编码
  10. python save保存图片到本地_python爬取网站上的图片并保存到本地