java 反射getClass .class 的使用方法示例
本文实例讲述了java反射getClass.class的使用方法。分享给大家供大家参考,具体如下:
java反射机制
怎么从一个实例上的获得类反射
/**
*obj实例的对象
*getClass()获得该实例类的反射
*@return
*Class
*/
obj.getClass();
//例子
Stringstr1="123";
Class>strClass1=str1.getClass();
Stringstr2=newString("456");
Class>strClass2=str2.getClass();
怎么从一个类上获得类的反射
/** *ClassName类名称 *.class该类的属性 *@return *Class */ ClassName.class //例子 Class>a=String.class Class>b=Integer.class Class>c=Double.class
packageMain;
importjava.lang.reflect.Field;
importjava.lang.reflect.InvocationTargetException;
importjava.lang.reflect.Method;
importjava.lang.reflect.Modifier;
importjava.util.Arrays;
importDemo.Demo1;
publicclassIndex
{
publicstaticvoidmain(String[]agrs)throwsException
{
Demo1obj=newDemo1();
Stringstr=(String)runTargetMethod(obj,"test1",newClass[]{String.class,String.class},newObject[]{"2","3"});
System.out.println(str);
System.out.println();
System.out.println();
System.out.println();
dumpTargetMethod(obj);
}
/**
*调用指定对象的指定方法。
*@paramObjectobj对象实例
*@paramStringmethodName要调用的方法名称
*@paramClass>[]classes方法中的参数对象
*@paramObject[]valObj需要向参数中传递的值
*@returnObject直接结果
**/
publicstaticObjectrunTargetMethod(Objectobj,StringmethodName,Class>[]classes,Object[]valObj)throwsException
{
Class>classObj=obj.getClass();
Methodmethod=classObj.getMethod(methodName,classes);
returnmethod.invoke(obj,valObj);
}
/**
*打印对象内容
*@paramObjectobj对象实例
*@throwsIllegalAccessException
*@throwsIllegalArgumentException
**/
publicstaticvoiddumpTargetMethod(Objectobj)throwsIllegalArgumentException,IllegalAccessException
{
Class>classObj=obj.getClass();
System.out.println("-------------------methoddump-------------------------");
Method[]methods=classObj.getDeclaredMethods();
for(Methodmethod:methods)
{
Class>[]parameters=method.getParameterTypes();
StringBufferstrBuffer=newStringBuffer();
for(inti=0;i
packageDemo;
/**
*Demo测试类
*/
publicclassDemo1
{
publicStringdemo1="demo1_val";
protectedStringdemo2="demo2_val";
privateStringdemo3="demo3_val";
publicstaticStringdemo4="demo4_val";
publicStringgetName()
{
return"mynameis勇哥";
}
publicintgetAge()
{
return22;
}
publicStringtest1(Stringstr1,Stringstr2)
{
StringBufferbuffer=newStringBuffer(str1);
buffer.append(str2);
returnbuffer.toString();
}
publicStringtest1()
{
return"123";
}
}
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。