Javs 反射 之 取得全部方法
package com.cn.service;public interface China {public static final String NATIONAL="China";public static final String AUTHOR="老李";public void sayChina();public String sayHello(String name,int age);
}package com.cn.model;import com.cn.service.China;public class Person implements China{private String name;private int age;public Person(){}public Person(String name){this.name=name;}public Person(String name,int age){this(name);//调用有一个参数的构造函数this.setAge(age);}public void sayChina() {// TODO Auto-generated method stubSystem.out.println("作者:"+AUTHOR+" ,国籍: "+NATIONAL);}public String sayHello(String name, int age) {// TODO Auto-generated method stubreturn name+",你好!我今年"+age+"岁了";}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}package com.cn.component;import java.lang.reflect.Method;
import java.lang.reflect.Modifier;/*** 获取一个类的全部方法* @author Administrator**/
public class GetMethodDemo {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubClass<?> c=null;//申明class对象,泛型try{c=Class.forName("com.cn.model.Person");//实例化class对象}catch(ClassNotFoundException e){e.printStackTrace();}Method m[]=c.getMethods();//获取类Person的全部方法for(int i=0;i<m.length;i++){int mo=m[i].getModifiers();//获取修饰符数字String priv=Modifier.toString(mo);//获取修饰符System.out.print(priv+" ");Class<?> type=m[i].getReturnType();//获取返回值类型System.out.print(type.getName()+" ");//取得返回类型名称System.out.print(m[i].getName()+" ");//方法名称System.out.print("(");//参数左边括号Class<?> pt[]=m[i].getParameterTypes();//获取参数类型for(int j=0;j<pt.length;j++){System.out.print(pt[j].getName()+" "+"arg"+j);//取得参数类型名称,如:int ,或者String if(j<pt.length-1){System.out.print(",");}}Class<?> ex[]=m[i].getExceptionTypes();//获取异常类型if(ex.length>0){System.out.print(") throws ");}else{System.out.print(" )");}for(int k=0;k<ex.length;k++){System.out.print(ex[k].getName());//输出异常信息名称if(k<ex.length-1){System.out.print(" ,");}}System.out.println();//换行}}}
//输出结果,不仅输出person类中的方法,也输出了从Object类中继承的方法
//public void setAge (int arg0 )
//public void sayChina ( )
//public java.lang.String sayHello (java.lang.String arg0,int arg1 )
//public int getAge ( )
//public java.lang.String getName ( )
//public void setName (java.lang.String arg0 )
//public native int hashCode ( )
//public final native java.lang.Class getClass ( )
//public final void wait (long arg0,int arg1) throws java.lang.InterruptedException
//public final void wait () throws java.lang.InterruptedException
//public final native void wait (long arg0) throws java.lang.InterruptedException
//public boolean equals (java.lang.Object arg0 )
//public java.lang.String toString ( )
//public final native void notify ( )
//public final native void notifyAll ( )
Javs 反射 之 取得全部方法相关推荐
- 06 面向对象之:反射,双下方法
一.反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语 ...
- python全栈开发基础【第十七篇】面向对象反射和内置方法
一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被 ...
- Go - 反射中 函数 和 方法 的调用 - v.Call()
上一篇文章 说到了 Golang 中的反射的一些基本规则,重点就是文章中最后的三点,但是这篇文章并没有说如何在反射中调用函数和方法,这就是接下来要说的. 反射中调用 函数 众所周知,Golang 中的 ...
- 面向对象之: 反射和双下方法
目录 一, 反射 二, 函数VS方法 三, 双下方法 一, 反射 反射:程序可以访问,检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性 p ...
- android 反射调用方法可不可以重载,使用Java进行反射投射和重载方法调度
请注意,所有代码都是一个简化示例,目的是仅传达我的问题的核心思想.它应该都经过轻微的编辑后编译并运行.使用Java进行反射投射和重载方法调度 我有几个类都实现了一个通用接口. public inter ...
- 比较一下以“反射”和“表达式”执行方法的性能差异【转】
由于频繁地使用反射会影响性能,所以ASP.NET MVC采用了表达式树的方式来执行目标Action方法.具体来说,ASP.NET MVC会构建一个表达式来体现针对目标Action方法的执行,并且将该表 ...
- java 反射无参方法_java 反射 调用无参数方法?
通过Java反射调用无参数方法,这是个测试用的例子,通过反射调用对象的方法,代码如下: import java.lang.reflect.Method; import java.lang.reflec ...
- java hook 和反射_Java反射与hook混用反射某支付的方法
反射某支付软件apk的方法 思路: 1.可以先取得某支付软件的classLoader,可以通过hook某支付软件的必须方法(如:LauncherActivity的attachBaseContext方法 ...
- python之面向对象反射和双下方法
面向对象之反射,双下方法 反射 定义:主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中一切皆对象(都 ...
最新文章
- 学软件测试的优势有哪些
- CF850F Rainbow Balls(数学、期望)
- BigDecimal丢失精度的坑
- r语言 中断r的输入_R语言_004数据输入
- 详解getchar()函数与缓冲区
- 交叉编译ncurses5.6
- 源于零售业,如何赋能零售业?亚马逊云科技再发布四项新服务
- 如何在SQL Server中导入具有不同列数的平面文件
- phpcms 指定id范围 调用_Dubbogo 源码笔记(二)客户端调用过程
- 【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
- 124 并发编程小结
- 学习笔记——Servlet原理
- IT 软件测试 ——轻松月入过20K 测试工程师年薪35W
- 中国计算机软件专业技术资格和水平考试各地咨询地址和报名时间
- Multipath TCP(MPTCP) Congestion Control抛砖引玉
- xiaoxin juju needs help
- MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法
- Cass10.1独立地物简码识别功能
- macbook的 safari浏览器退出后又自动启动,强制退出以后也重启,重启电脑也重启
- Linux性能优化:CPU篇