当前位置: 首页 > news >正文

wordpress设置菜单导航沈阳百度seo关键词排名优化软件

wordpress设置菜单导航,沈阳百度seo关键词排名优化软件,免费的海报设计软件,企业网站源码库文章目录 前言一、访问成员方法的方法二、Method类 1.常用方法2.实操展示总结 前言 为了实现在某类中随时可以调用其他类的方法,java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法,利用Methoc对象可以操纵相应的方法…

文章目录

  • 前言
  • 一、访问成员方法的方法
  • 二、Method类
    • 1.常用方法
    • 2.实操展示
  • 总结

前言

        为了实现在某类中随时可以调用其他类的方法,java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法,利用Methoc对象可以操纵相应的方法。


一、访问成员方法的方法

        Method类型的对象是指以成员方法为对象的变量。在我们获取成员方法时,根据需要指定Method类型对象是否为数组。

获取成员方法的方法
方法功能描述
getMethods()获得该类的所有公有的成员方法(返回值类型为数组)
getMethod(String name,Class<?>...parameterTypes)获取指定的该类中的公开的成员方法(指定的方法由name字符串决定)
getDeclaredMethods()获取该类的所有成员方法(返回值类型为数组)
getDeclaredMethod(String name,Class<?>...parameterTypes)获取指定的该类中的成员方法(指定的方法由name字符串决定)

        实操展示:

        原调用方法的类 :

public class Demo {public int add(int a,int b){System.out.println(a+"+"+b+"="+(a+b));return a+b;}private int minus(int a,int b){System.out.println(a+"-"+b+"="+(a-b));return a-b;}
}

        调用该方法的类:

import java.lang.reflect.*;
public class See{Demo demo = new Demo();Class class1=demo.getClass();Method method[] =class1.getDeclaredMethods();//获取demo类中所有的方法,返回形式为method类数组
}

         以上就是使用获取成员方法的方法,获取某类的成员方法的步骤了。先实例化该目标类,然后再获取该类的Class对象,最后使用上述表格中的方法即可。目的是在运行过程中,动态地获取和调整类的方法参数。

二、Method类

1.常用方法

Method类的常用方法
方法功能描述
getName()获得该方法的名称
getParameterTypes()按照声明顺序以Class数组的形式获取该方法的各个参数的类型
getReturnType()以Class对象的形式获得该方法的返回值的类型
getExceptionTypes()以Class数组的形式获取该方法可能抛出的异常
invoke(Object obj,Object...args)利用指定参数args执行指定对象obj中的该方法,返回值为Object型
isVarArgs()查看该构造方法是否允许带有可变数量的参数,如果允许返回true,否则返回false
getModifiers()获得可以解析出该方法所采用修饰符的整数
setAccessible()用于设置反射对象的可访问性,若方法的权限修饰词为private私有,可设置为true来修改该权限,然后可以获取该方法。

2.实操展示

        实例:创建一个Demo类,在该类中创建多个不同的方法;创建See类,通过使用上述的方法获取到该类的所有方法的所有信息;创建Use类,通过使用上述方法和invoke()方法来调用,调参方法并且进行使用。

        Demo类:

public class Demo {//add()方法public int add(int a,int b){System.out.println(a+"+"+b+"="+(a+b));return a+b;}//minus方法private int minus(int a,int b){System.out.println(a+"-"+b+"="+(a-b));return a-b;}//insert方法public String insert(String str1,String str2){char char1[] = str1.toCharArray();char char2[] = str2.toCharArray();StringBuilder end = new StringBuilder();for(int i=0;i<=(char1.length+char2.length);i++){if (i<char1.length) {end.append(char1[i]);}if(i<char2.length){end.append(char2[i]);}}System.out.println(str1+"和"+str2+"插空排序的结果为:"+end);return end.toString();}//nul方法public void nul(String...strings){StringBuilder result = new StringBuilder();for(int i=0;i<strings.length;i++){result.append(strings[i]);  }String string =result.toString();System.out.println("连接的字符串为:"+string);}//综上四个方法
}

        See类:

import java.lang.reflect.*;
public class See{public static void main(String[] args) {Demo demo = new Demo();Class class1=demo.getClass();Method method[] =class1.getDeclaredMethods();try{ for(int i=0;i<method.length;i++){//成员方法的名称System.out.println("该成员方法的名称:"+method[i].getName());//成员方法的引用参数System.out.println("该成员方法的引用参数为:");Class parameterTypes[] = method[i].getParameterTypes();for(Class c:parameterTypes){System.out.println(c);}//成员方法的返回类型System.out.println("成员方法的返回变量类型:"+method[i].getReturnType());//成员方法的权限修饰符System.out.println("成员变量的修饰符权限:"+Modifier.toString(method[i].getModifiers()));//成员方法可能报错的异常System.out.println("成员方法可能报错的异常:");Class class2[] = method[i].getExceptionTypes();for(Class c1:class2){System.out.println(c1);}//查看该构造方法是否允许带有可变数量的参数boolean b=method[i].isVarArgs();System.out.println("查看该构造方法是否允许带有可变数量的参数:"+b);System.out.println("------------------------------");}} catch (Exception e) {e.printStackTrace();}}
}

        运行结果:  

        如图所示,See类中使用了上述表格中的方法,显示了Demo类中有关各个方法的相关信息,方法名称、引用参数、返回变量、权限修饰符、异常报错等等。 

        Use类:

import java.lang.reflect.*;
public class Use {public static void main(String[] args) {Demo demo = new Demo();Class class1 = demo.getClass();Method method[] = class1.getDeclaredMethods();for(int i=0;i<method.length;i++){try {if(method[i].getName().equals("add")){System.out.println("调用了Demo类的add()方法");method[i].invoke(demo, 100,150);}else if(method[i].getName().equals("minus")){System.out.println("调用了Demo类的minus()方法");method[i].invoke(demo, 100,350);}else if(method[i].getName().equals("insert")) {System.out.println("调用了Demo类的insert()方法");method[i].invoke(demo, "aceg","BDFH");}else if(method[i].getName().equals("nul")){System.out.println("调用了Demo类的nul()方法");method[i].invoke(demo, new Object[]{new String[]{"你好", ",", "世界", "!"}});}System.out.println("-------------------------------------");} catch (Exception e) {System.out.println("try-catch捕捉到异常,使用setAccessible()方法更改成员变量权限");method[i].setAccessible(true);try {System.out.println("修改权限后,调用了Demo类的minus()方法");method[i].invoke(demo,100,350);System.out.println("-------------------------------------");} catch (Exception e2) {e2.printStackTrace();}  }}}
}

        运行结果: 

         如图所示,Use类通过equals方法判断method数组中各个对应的方法,然后使用invoke()方法,输入被调用的类的实例化对象,调整方法引用参数,运行方法。有了异常后更改方法的权限,运行catch语句代码。


总结

        以上就是今天要讲的内容,本文仅仅简单介绍了访问成员方法的使用,而Method类提供了大量能使我们便捷地实时处理数据的方法,该类处于java.lang.reflect包下,指正和补充的内容欢迎在评论区中留言。

http://www.hkea.cn/news/531868/

相关文章:

  • 深圳公司名称大全网站结构优化的内容和方法
  • 安康市代驾公司上海网站关键词排名优化报价
  • 怎么在网站上建设投票统计在线培训系统app
  • 泰州网站建设哪家好网站seo的主要优化内容
  • 洛卡博网站谁做的seo权重查询
  • 东莞网络科技公司有哪些山东网站seo
  • 网站建设需要学什么网站模板购买
  • 用html做的游戏网站关键词推广效果分析
  • 做影视网站引流正规推广平台有哪些
  • 免费下载简历模板北京seo排名厂家
  • 西昌市做网站的百度搜索排名靠前
  • 办公室装修实景拍摄图重庆seo俱乐部联系方式
  • 网站建设阶段推广计划书怎么写
  • 代做毕业设计网站现成注册网站平台
  • 电商网站开发工作计划企业网络营销策划
  • 用wps网站栏目做树形结构图网页设计代码案例
  • 多媒体网站设计开发是指什么每日关键词搜索排行
  • 网站 seo正规网络公司关键词排名优化
  • 建立网站赚多少钱seo收录排名
  • 怎么做app网站seo学习网站
  • 广西建设职业技术学院官网免费的seo优化
  • 凡科网电脑版怎么做网站百度知道官网手机版
  • 贵卅省住房和城乡建设厅网站周口seo推广
  • 搭建flv视频网站seo工具查询
  • 企业展示网站 数据库设计模板自助建站
  • 房地产设计师上海seo网络优化
  • wordpress迁移打不开百度seo泛解析代发排名
  • 网站兼容性测试怎么做微信营销软件群发
  • wordpress如何设置内容页seo营销优化
  • 高端大气的网站制作南宁百度seo软件