Java使用反射调用方法 - 百易城

gojava 2021-08-06 原文


Java使用反射调用方法

  在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述Java使用反射调用方法,更多Java专业知识,广州疯狂java培训为你讲解;

  之前在sinablog写的东西。在使用反射可以得到类模板class对象,那么得到类模板的class对象后,如何调用某个已知的且需要的方法呢?答案是使用method类的invoke方法,那么实现的代码如下,结合jdk的api和该代码便可以知道原理

  代码

  package methodinvoke;

  import java.lang.reflect.Method;

  public class Test {

  public String function () {

  return “调用function”;

  }

  @SuppressWarnings(“unchecked”)

  public static void main(String[] args) {

  try {

  //利用forname反射方式得到某个类的class对象,即类模板

  Class c = Class.forName(“methodinvoke.Test”);

  //由类模板得到该类的实体

  Test t = (Test) c.newInstance();

  System.out.println(“————————对象”);

  //打印类模板的name

  System.out.println(“//class.getname”);

  System.out.println(c.getName());

  //打印类模板所对应的对象的name

  System.out.println(“//obj.tostring”);

  System.out.println(t);

  System.out.println(“————————方法”);

  //得到某方法实体对应的class模板对象的name

  System.out.println(“//method.class.getname”);

  System.out.println(c.getMethod(“function”, null).getClass().getName());

  System.out.println(“//method.getname”);

  //得到某方法实体的name

  System.out.println(c.getMethod(“function”, null).getName());

  System.out.println(“//调用方法”);

  //调用t引用所指向的对象的某方法

  System.out.println(c.getMethod(“function”, null).invoke(t, null));

  System.out.println(“————————遍历对象的方法”);

  Method[] methods = c.getMethods();

  //遍历得到某个类模板中的方法实体

  for (int i = 0;i < methods.length;i++) {

  //方法实体的class模板对象的name

  System.out.println(methods[i].getClass().getName());

  //方法实体的name

  System.out.println(methods[i].getName());

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。没有工作经验的学员,在疯狂java,通过大量全真经典企业级项目进行集中培训,课上讲师讲解和课下项目练习课上课下双管齐下,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,激情,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

发表于
2013-08-08 11:05 
百易城 
阅读(675
评论(0
编辑 
收藏 
举报

 

版权声明:本文为gojava原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gojava/p/3245339.html

Java使用反射调用方法 - 百易城的更多相关文章

  1. 简单爬虫爬去51job职位 – summerkxy

    简单爬虫爬去51job职位 #-*- coding:utf-8 -*- from urllib import […]...

  2. Android中颜色的设置 – Hi,David

    Android中颜色的设置 2016-07-14 23:59  Hi,David  阅读(352)  评论(0 […]...

  3. 国内第一款DApp–以太猫【原创】 – 无影尊者

    国内第一款DApp–以太猫【原创】 最近学习区块链,看过书籍、视频和教程之后想亲手操作一下,于是花 […]...

  4. (笔记)电路设计(六)之稳压二极管的应用 – tdyizhen1314

    (笔记)电路设计(六)之稳压二极管的应用   背景:为统筹电路设计较全面的知识点,本人将在近期推出电路设计中各 […]...

  5. 华为交换机telnet配置 – cagebird

    华为交换机telnet配置 1.在路由器上和交换机相连的借口上配置一个IP地址:比如192.168.1.1 2 […]...

  6. Linux 操作MySQL常用命令行 – 征征的美丽心情

    Linux 操作MySQL常用命令行 Linux上操作MySQL的常用命令行 注意:MySQL中每个命令后都要 […]...

  7. 多线程高并发编程(2) — 可重入锁介绍和自定义

    多线程高并发编程 背景:   什么是 “可重入”?可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现 […]...

  8. Java Eclipse代码注释和快捷键 – 潇湘剑雨

    Java Eclipse代码注释和快捷键    注释:1.单行注释  //…..         […]...

随机推荐

  1. 网络营销教程—SEO 第七章 外部链接的优化操作

    一技术篇 1锚链接的使用 链接是互联网网页之间连接的纽带,没有链接所有网页和网站之间都会是孤立的。什么是锚链接 […]...

  2. C# 9.0新特性

    CandidateFeaturesForCSharp9 看到标题,是不是认为我把标题写错了?是的,C# 8.0 […]...

  3. 群晖IP地址更新问题

    系统:黑群晖  DS3615 事件:初始安装后 会自动获取一个IP地址,各项功能正常,由于网络调整,更换了路由 […]...

  4. 聊一聊:Service层你觉得有用吗?

    前段日子在社群(点击加入)里看到有人讨论关于Service层接口的问题,DD也经常碰到周围的新人有问过一些类似 […]...

  5. python使用sqlmap API检测SQL注入

    sqlmapapi.py  -s         在服务端启动服务 @get127.0.0.1:8775/ta […]...

  6. 坐上JDK8时间SDK的小船,带你遨游UNIX时间戳与时区的小太空~

    利用 JDK8 的 LocalDateTime,带你看清 UNIX时间戳与时区的区别 原文链接:坐上JDK8时 […]...

  7. Nerd的畅销产品

      感谢陈大先生花费时间一起细致地讨论这个课题,促成此文。 《Nerd的套现ATM机》中已经谈到,对于nerd […]...

  8. 究竟是利己推动了社会进步还是利他推动了社会进步____经济学中的利己与利他,斯密在他的经济学着作《国民财富的性质和原因的研究》,究竟是利己推动了社会进步还是利他推动了社会进步

        经济学中的利己与利他_经济学_高等教育_教育专区 3590人阅读|85次下载 经济学中的利己与利他_经 […]...

展开目录

目录导航