继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java反射课程的练习代码

LinglingZhao
关注TA
已关注
手记 2
粉丝 4
获赞 57

也没啥好说的,直接上代码。(可能写的有点不太规范)!
图片描述
图片描述
图片描述
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.reflect.Constructor;

public class ClassUtil
{ //Class c 填想查的类.class(例 String.class)

//打印类的方法
public static void printMethodMessage(Class c){
System.out.println("类的名称是 : "+c.getName());
Method[] m=c.getMethods();//得到类的方法
System.out.println("=================原有方法==================");
Method(m);
Method[] m1=c.getDeclaredMethods();
System.out.println("=================私有方法==================");
Method(m1);
}

//打印类的成员变量
public static void printFieldMessage(Class c)
{
    Field[] fi=c.getFields();
    System.out.println("=================原有成员变量==================");
    Field(fi);
    Field[] fi1=c.getDeclaredFields();
    System.out.println("=================自定义成员变量==================");
    Field(fi1);
}

//打印类的构造函数
public static void printConMessage(Class c){
    Constructor[] cs= c.getConstructors();
    System.out.println("=================原有构造函数==================");
    Constructor(cs);
    Constructor[] cs2=c.getDeclaredConstructors();
    System.out.println("=================自定义构造函数==================");
    Constructor(cs2);

}

//实现对类的构造函数的打印
private static void Constructor(Constructor[] cs)
{
for (Constructor con:cs)
{
System.out.print(con.getName() + "(");
Class[] pt=con.getParameterTypes();
for (Class type:pt)
{ //当最后一个参数类型打印出来时,后面不会有一个多余的","
if (type != pt[pt.length - 1])
{
System.out.print(type.getName() + ",");
}
else
{
System.out.print(type.getName());
}
}
System.out.println(")");
//换行纯粹为了看着方便
System.out.println(" ");
}
}
//实现对类的方法的打印
private static void Method(Method[] m)
{
for (Method method:m)
{
//得到方法的返回类型的类类型
Class returnType=method.getReturnType();
//通过返回类型的类类型得到返回类型的名称
System.out.print(returnType.getName() + " ");
//打印方法名
System.out.print(method.getName() + "(");
//得到方法参数的类类型的Class[]
Class[] ParamType=method.getParameterTypes();
for (Class p:ParamType)
{
//如果是最后一个参数则不在参数后打印","
if (p == ParamType[ParamType.length - 1])
{
System.out.print(p.getName());
}
else
{
System.out.print(p.getName() + ",");
}
}
System.out.println(")");
System.out.println(" ");
}
}

//实现对类的成员变量的打印
private static void Field(Field[] fi)
{
for (Field f:fi)
{
Class FieldType=f.getType();
String FieldName=f.getName();
System.out.println(FieldType + " " + FieldName);
}
}

}

打开App,阅读手记
7人推荐
发表评论
随时随地看视频慕课网APP

热门评论

AIDE,网上有汉化版的。如果做前端的话还有一个AIDE web 也可以找汉化版的。

可不可以讲讲反射是怎么回事?

用的什么手机软件????

查看全部评论