反射之Method
来源:互联网 发布:企业开淘宝网店的流程 编辑:程序博客网 时间:2024/05/23 13:54
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import java.lang.reflect.Method;
/**
* @author Administrator
*
*/
public class MethodTest {
static void staticMethod()
{
System.out.println("执行staticMethod()方法");
}
public int publicMethod(int i)
{
System.out.println("执行publicMethod()方法");
return i*20;
}
protected int protectedMethod(String s,int i) throws NumberFormatException{
System.out.println("执行protectedMethod()方法");
return Integer.valueOf(s)+i;
}
private String privateMethod(String...strings){
System.out.println("执行privateMethod()方法");
StringBuffer stringBuffer = new StringBuffer();
for(int i=0;i<strings.length;i++)
{
stringBuffer.append(strings[i]);
}
return stringBuffer.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化一个对象:
MethodTest methodTest = new MethodTest();
Method[] declaredMethods = MethodTest.class.getDeclaredMethods(); //获得所有的方法
for(int i=0;i<declaredMethods.length;i++)
{
Method method = declaredMethods[i];
System.out.println("名称:"+method.getName()); //方法名称
System.out.println("是否允许带有可变参数变量:"+method.isVarArgs());//
System.out.println("入口参数类型依次为:");
Class[]parameterTypes = method.getParameterTypes();//获得方法所有的参数类型
for(int j=0;j<parameterTypes.length;j++)
{
System.out.println("parameterTypes[" + j + "]" + parameterTypes[j]);
}
System.out.println("返回值类型:"+method.getReturnType()); //获得方法返回值类型
System.out.println("可能抛出异常类型有:");
Class []exceptionTypes = method.getExceptionTypes(); //获得可能抛出的所有异常类型
for(int j=0;j<exceptionTypes.length;j++){
System.out.println("exceptionTypes[" + j + "]" + exceptionTypes[j]);
}
boolean isTurn = true;
while(isTurn) //调用类中的方法
{
try
{
isTurn = false;
if(i==0) //请注意生成的顺序,可以先把这些语句注释掉,看下顺序再另行执行。
{
method.invoke(methodTest);
} else if(i==1)
{
System.out.println("返回值:" + method.invoke(methodTest,168));
}else if(i==2)
{
System.out.println("返回值:" + method.invoke(methodTest,"7",5));
}else if(i==3)
{
Object[] parameters = new Object[]{new String[]{"M","W","Q"}};
System.out.println("返回值:"+method.invoke(methodTest, parameters));
}
}catch(Exception e)
{
System.out.println("在执行方法时抛出异常,执行setAccessible()方法");
method.setAccessible(true);
isTurn = true;
}
}
System.out.println("****************");
}
}
}
- 反射之Method类
- 反射之Method
- java反射之Method
- 黑马程序员--java 反射之method 类
- Java反射之Method(一)
- Android之反射-Method(方法类)
- 反射--Method
- 【java高级特性之反射】Method方法的反射
- Java反射之Method调用和Filed设置
- java的反射Reflect机制之Method篇
- Java反射之Method调用和Filed设置
- 黑马程序员_Java高新技术之反射 Method类
- 设计模式之factory method与c++反射
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- java反射机制之Method invoke执行调用方法例子
- Java反射之Method Class.getMethod(String name, Class<?>... parameterTypes)
- java反射机制之Method invoke执行调用方法例子
- 【Html】连接的4个控制标签(Ps.hover真好用)
- 大数模板1
- Unity3D脚本:Unity3D调用外部摄像头
- POJ 3253 Fence Repair 题解(优先队列实现哈夫曼树)
- hello mahout
- 反射之Method
- CSS样式之transform(对元素的旋转、缩放、移动或倾斜)
- XcodeCoverage查看iOS应用的代码覆盖率
- Linux负载均衡软件LVS之一(概念篇)转载
- chm文件乱码的解决方案
- Git fetch和git pull的区别
- 用浏览器访问WCF
- Linux负载均衡软件LVS之二(安装篇)*转载
- 特殊的线性表-队列-顺序队列