全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java反射之方法反射的基本操作方法

本文接上文“java反射之获取类的信息方法(推荐)”,利用反射(invoke)来获取一个类中的方法来执行。

1、定义一个类,包含三个名称相同,参数不同的方法

class A{
  public void print(){
    System.out.println("Hello,World");
  }

  public void print(int a,int b){
    System.out.println(a+b);
  }
  public void print(String a,String b){
    System.out.println(a.toUpperCase()+","+b.toLowerCase());
  }
}

2、利用方法的反射(invoke)分别获取该类三个方法并执行

public class Test {
  public static void main(String[] args) {
    /**
     * 获取print(int,int)方法
     * 1、获取类的类类型
     */
    A a1 = new A();
    Class clazz = a1.getClass();
    /**
     * 2、获取方法(名称、参数列表)
     * getMethod()获取的是public方法
     * getDeclaredMethod()获取的是自己声明的方法
     */
    try {
//      Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
      Method m = clazz.getMethod("print", int.class, int.class);
      //方法的反射操作,用m对象进行方法调用,a1.print完全相同
      //方法没有返回值返回null,有返回值返回具体的返回值
//      Object obj = m.invoke(a1,new Object[]{10,20});
      Object obj = m.invoke(a1,10,20);

      System.out.println("================================================");

      Method m2 = clazz.getMethod("print", String.class, String.class);
      m2.invoke(a1,"aaa","BBB");

      System.out.println("================================================");

      Method m3 = clazz.getMethod("print");
      m3.invoke(a1);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

3、完整代码

package com.format.test;

import java.lang.reflect.Method;

/**
 * Created by Format on 2017/6/3.
 */
public class Test {
  public static void main(String[] args) {
    /**
     * 获取print(int,int)方法
     * 1、获取类的类类型
     */
    A a1 = new A();
    Class clazz = a1.getClass();
    /**
     * 2、获取方法(名称、参数列表)
     * getMethod()获取的是public方法
     * getDeclaredMethod()获取的是自己声明的方法
     */
    try {
//      Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
      Method m = clazz.getMethod("print", int.class, int.class);
      //方法的反射操作,用m对象进行方法调用,a1.print完全相同
      //方法没有返回值返回null,有返回值返回具体的返回值
//      Object obj = m.invoke(a1,new Object[]{10,20});
      Object obj = m.invoke(a1,10,20);

      System.out.println("================================================");

      Method m2 = clazz.getMethod("print", String.class, String.class);
      m2.invoke(a1,"aaa","BBB");

      System.out.println("================================================");

      Method m3 = clazz.getMethod("print");
      m3.invoke(a1);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

class A{
  public void print(){
    System.out.println("Hello,World");
  }

  public void print(int a,int b){
    System.out.println(a+b);
  }
  public void print(String a,String b){
    System.out.println(a.toUpperCase()+","+b.toLowerCase());
  }
}

4、执行结果

以上这篇java反射之方法反射的基本操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java反射方法  # Java方法反射实现原理详解  # 的是  # 返回值  # 给大家  # 完全相同  # 希望能  # 这篇  # 方法来  # 小编  # 大家多多  # 操作方法  # 类中  # World  # toLowerCase  # Test  # String  # toUpperCase  # int  # Class  # clazz  # static 


相关文章: 小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何设置并定期更换建站之星安全管理员密码?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星伪静态规则如何正确配置?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何通过山东自助建站平台快速注册域名?  如何在橙子建站上传落地页?操作指南详解  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  大连 网站制作,大连天途有线官网?  浅谈Javascript中的Label语句  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站之星如何实现PC+手机+微信网站五合一建站?  大连网站设计制作招聘信息,大连投诉网站有哪些?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  建站ABC备案流程中有哪些关键注意事项?  如何注册花生壳免费域名并搭建个人网站?  建站之星展会模版如何一键下载生成?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  linux top下的 minerd 木马清除方法  如何高效完成独享虚拟主机建站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  大同网页,大同瑞慈医院官网?  c# 在ASP.NET Core中管理和取消后台任务  如何在新浪SAE免费搭建个人博客?  如何在IIS中配置站点IP、端口及主机头?  模具网站制作流程,如何找模具客户?  装修招标网站设计制作流程,装修招标流程?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  网站制作公司排行榜,抖音怎样做个人官方网站  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  c# 在高并发场景下,委托和接口调用的性能对比  如何通过老薛主机一键快速建站?  如何高效利用200m空间完成建站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  网站企业制作流程,用什么语言做企业网站比较好?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何快速打造个性化非模板自助建站?  建站主机如何选?性能与价格怎样平衡?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何快速启动建站代理加盟业务?  C#怎么创建控制台应用 C# Console App项目创建方法  如何在云虚拟主机上快速搭建个人网站?  建站之星Pro快速搭建教程:模板选择与功能配置指南  淘宝制作网站有哪些,淘宝网官网主页?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。