ITPub博客

首页 > 应用开发 > Java > 反射例子

反射例子

原创 Java 作者:tempwei1 时间:2009-04-30 17:07:15 0 删除 编辑

import java.awt.Button;

import java.lang.reflect.Method;

import java.util.Hashtable;

public class ReflectionTest {

/**

*@paramargs

*/

public static void main(String[] args) throws Exception {

ReflectionTest reflection = new ReflectionTest();

reflection.getNameTest();

System.out.println("");

reflection.getMethodTest();

}

/**

*Class的getName()方法测试.

*@throwsException

*/

public void getNameTest() throws Exception {

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

String name = "阿蜜果";

Class cls = name.getClass();

System.out.println("String类名: " + cls.getName());

Button btn = new Button();

Class btnClass = btn.getClass();

System.out.println("Button类名: " + btnClass.getName());

Class superBtnClass = btnClass.getSuperclass();

System.out.println("Button的父类名: " + superBtnClass.getName());

Class clsTest = Class.forName("java.awt.Button");

System.out.println("clsTest name: " + clsTest.getName());

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

}

/**

*Class的getMethod()方法测试.

*@throwsException

*/

public void getMethodTest() throws Exception {

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

Class cls = Class.forName("ReflectionTest");

Class ptypes[] = new Class[2];

ptypes[0] = Class.forName("java.lang.String");

ptypes[1] = Class.forName("java.util.Hashtable");

Method method = cls.getMethod("testMethod", ptypes);

Object args[] = new Object[2];

args[0] = "hello, my dear!";

Hashtable ht = new Hashtable();

ht.put("name", "阿蜜果");

args[1] = ht;

String returnStr = (String) method.invoke(new ReflectionTest(), args);

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

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

}

public String testMethod(String str, Hashtable ht) throws Exception {

String returnStr = "返回值";

System.out.println("测试testMethod()方法调用");

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

System.out.println("名字= " + (String) ht.get("name"));

System.out.println("结束testMethod()方法调用");

return returnStr;

}

}

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9402971/viewspace-1021569/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Java路径,文件等
请登录后发表评论 登录
全部评论
  • 博文量
    7
  • 访问量
    4607