`
xiuying
  • 浏览: 543681 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

浅解反射后的一个小例子

阅读更多
类:
package echo;

public class GetClass {
private String name;
private String age;
private String sex;

public GetClass(){
this.name="zhangsan";
this.age="12";
this.sex="1";
}

public String getPerson(){
String person="";
person=this.getName()+"  "+this.getAge()+"   "+this.getSex();
return person;
}

public String getNameAndSex(){
String info = "";
info = this.getName()+"  "+this.getSex();
return info;
}

public String getNameAndAge(){
String info = "";
info = this.getName()+"  "+this.getAge();
return info;
}

public void printSuccessful(){
System.out.println("print successful......!");
}

public void printSuccessful(String str1, String str2){
System.out.println("print2 successful......!");
System.out.println(str1 + "," + str2);
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}


}


测试类:
package test;

import java.lang.reflect.Method;

import junit.framework.TestCase;
import echo.GetClass;

public class Test extends TestCase {

public void testGetClass(){
GetClass gc = new GetClass();
String gClass = "echo.GetClass";
try {
//得到类对象
Class c = Class.forName(gClass);
//得到类实例
Object obj = c.newInstance();

//通过类对象获得类的内部方法
Method m = c.getMethod("printSuccessful",null);
//得到方法对象后用类实例执行方法
m.invoke(obj,null);

//多个参数的写法
m = c.getMethod("printSuccessful",new Class[]{String.class,String.class});
m.invoke(obj,new String[]{"111","222"});

//得到类名包含包在内 例如:echo.GetClass
System.out.println(c.getName());


} catch(Exception e){
System.out.println(e.toString());
}
}

}
分享到:
评论

相关推荐

    浅谈Go语言中的结构体struct & 接口Interface & 反射

    反射(`reflect`包)是Go语言的一个重要特性,它允许程序在运行时检查和修改其自身的结构。通过反射,我们可以获取一个类型或值的元信息,并能够在运行时调用其方法,读取或修改其字段。反射在编写高度灵活和动态的...

    FDTD_3_1.rar_FDTD_3_1_FTDT_fdtd_fdtd例子_sullivan

    在提供的文件列表中,"FDTD_3_1.m"是一个MATLAB源文件,很可能包含了Sullivan文章中的一个具体FDTD示例。这个程序可能涵盖了初始化网格、定义物理参数、更新电磁场方程、边界条件处理等关键步骤。通过阅读和运行这段...

    A Guided Tour Of Mathematical Physics (By Roel Snieder, Department Of Geophysics, Utrecht Univers.pdf

    综上所述,《数学物理学导览》通过丰富的实例和深入浅出的讲解,为读者提供了一个全面理解数学物理概念的机会。无论是对于初学者还是有一定基础的学生来说,这本书都是一个宝贵的资源。通过阅读本书,读者不仅可以...

    随机过程(英文版)

    - **时间可逆性**: 当一个马尔可夫链的时间顺序反转后,它仍然保持为马尔可夫链。 - **队列模型**: 通过马尔可夫链模拟复杂的队列系统,如串联队列模型。 - **Metropolis方法**: 一种基于马尔可夫链的抽样算法,用于...

    河北省衡水中学2017届高三上学期第20周周测理综生物试题(解析版).doc

    2. 细胞的全能性和衰老:细胞的全能性指的是一个细胞具有发育成完整个体的能力,但通常细胞分化后不再恢复到分化前的状态。细胞会随着分裂次数的增加而衰老,这是正常的生理过程。 3. 基因定位:通过分析短纤维抗虫...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...

Global site tag (gtag.js) - Google Analytics