网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月29日漏签0天
广信it学院吧 关注:1,002贴子:19,458
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回广信it学院吧
>0< 加载中...

Java类加载机制和反射机制(二)

  • 只看楼主
  • 收藏

  • 回复
  • 跟小熊说晚安ii
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Class类常用类:
forName(StringclassName) 返回与带有给定字符串名的类或接口相关联的 Class 对象。
代码:Class<?>studentClass=Class.forName("com.gx.refect.Student");
forName(Stringname, boolean initialize, ClassLoader loader) 使用给定的类加载器,返回与带有给定字符串名的类或接口 相关联的 Class 对象。
getClassLoader()返回该类的类加载器。
getConstructor(Class...parameterTypes) 返回一个 Constructor 对象, 它反映此 Class 对象所表示的类的指定公共构造方法。
getConstructors()返回一个包含某些 Constructor 对象的数组,这 些对象反映此 Class 对象所表 示的类的所有公共构造方法。
代码:studentClass.getConstructors();//获取public构造器 不考虑使用
getDeclaredConstructor(Class...parameterTypes) 返回一个 Constructor 对象, 该对象反映此 Class 对象所表 示的类或接口的指定构造方法。
getDeclaredConstructors()返回 Constructor 对象的一个 数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。
代码:System.out.println("---所有的构造器---");
Constructor[]constructors= studentClass.getDeclaredConstructors();
for(Constructor constructor : constructors) {
StringBuilder builder=newStringBuilder();
//修饰符
builder.append("\t"+Modifier.toString(constructor.getModifiers()));
//构造器名称
builder.append(""+constructor.getName()+"(");
//构造器参数类型列表
Class<?>[]rarameterTypes=constructor.getParameterTypes();
for (Class<?> rarameterType :rarameterTypes) {
builder.append(rarameterType.getSimpleName()+",");
}
builder.append(")");
String str=builder.toString();
str=str.replace(",)",")");
System.out.println(str);
}
getDeclaredField(Stringname) 返回一个 Field 对象,该对象反 映此 Class 对象所表示的类或接口的指定已声明字段。
getDeclaredFields()返回 Field 对象的一个数组,这 些对象反映此 Class 对象所表 示的类或接口所声明的所有字 段。
代码:System.out.println("---所有的成员变量----");
Field[]fields=studentClass.getDeclaredFields();
for (inti = 0; i < fields.length; i++) {
StringBuffer sBuffer=newStringBuffer();
sBuffer.append("\t");
sBuffer.append(i+1);
sBuffer.append(":");
//修饰符
sBuffer.append(Modifier.toString(fields[i].getModifiers()));
sBuffer.append(" ");
//类型
sBuffer.append(fields[i].getType().getSimpleName());
sBuffer.append(" ");
//成员变量名
sBuffer.append(fields[i].getName());
System.out.println(sBuffer.toString());
}
getDeclaredMethod(Stringname, Class... parameterTypes) 返回一个 Method 对象,该对 象反映此 Class 对象所表示的类或接口的指定已声明方法。
getDeclaredMethods()返回 Method 对象的一个数 组,这些对象反映此 Class 对 象表示的类或接口声明的所有 方法,包括公共、保护、默认(包)访问和私有方法,但不 包括继承的方法。
代码:System.out.println("----所有的方法-----");
Method[]allmethods=studentClass.getDeclaredMethods();
for (inti = 0; i < allmethods.length; i++) {
StringBuffer sBuffer=newStringBuffer();
sBuffer.append("\t");
sBuffer.append(i+1);
sBuffer.append(":");
//获取修饰符
sBuffer.append(Modifier.toString(allmethods[i].getModifiers()));
sBuffer.append(" ");
//获取返回值类型
sBuffer.append(allmethods[i].getReturnType().getSimpleName());
sBuffer.append(" ");
//方法名称
sBuffer.append(allmethods[i].getName());
sBuffer.append("(");
//方法参数类型
Class<?>[]ptypes=allmethods[i].getParameterTypes();
for (int j = 0; j < ptypes.length;j++) {
sBuffer.append(ptypes[j].getSimpleName());
sBuffer.append(" ");
}
sBuffer.append(" )");
System.out.println(sBuffer.toString());
}
getField(Stringname) 返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。 getFields()返回一个包含某些 Field 对象的 数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段。
getMethod(Stringname, Class... parameterTypes) 返回一个 Method 对象,它反 映此 Class 对象所表示的类或接口的指定公共成员方法。
getMethods()返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回广信it学院吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示