Class.forName的使用
Class.forName的使用
Class.forName返回一个类,使用此方法可以获取类
首先,创建一个Student类
/***
* This Class is for Student bean
* @author Young
*
*/
public class Student { private int stud_Id;
private String stud_Name;
private String sex;
private String birthday;
private String score; public int getStud_Id() {
return stud_Id;
} public void setStud_Id(int stud_Id) {
this.stud_Id = stud_Id;
} public String getStud_Name() {
return stud_Name;
} public void setStud_Name(String stud_Name) {
this.stud_Name = stud_Name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getBirthday() {
return birthday;
} public void setBirthday(String birthday) {
this.birthday = birthday;
} public String getScore() {
return score;
} public void setScore(String score) {
this.score = score;
} /**
* This method is a constructor
*
* @author Young
* @param id
* @param name
* @param sex
* @param birthday
* @param score
*/
public Student(int id, String name, String sex, String birthday,
String score) { this.stud_Id = id;
this.stud_Name = name;
this.sex = sex;
this.birthday = birthday;
this.score = score;
} public Student() { this.stud_Id = 1000200;
this.stud_Name = "Test";
this.sex = "Male";
this.birthday = "2015/01/28";
this.score ="3.3";
}
}
然后使用该类
Class<?> c = Class.forName(Student.class.getCanonicalName());
Object obj=c.newInstance();
for(Method m:c.getMethods())
{
System.out.println(m.getName());
if(m.getName().equals("getId"))
{
System.out.println(m.invoke(obj));
}
使用invoke运行该类的方法
使用getInstance方法获取一个对象
获取不带参数的对象,如果遇到带参数的对象该怎么获取?
Class<?> c = Class.forName(Student.class.getCanonicalName());
Constructor<?> constructor = c.getConstructor(Integer.TYPE,
String.class, String.class, String.class, String.class);
Object obj = constructor.newInstance(1, "Test", "Male", "2015-07-09",
"80");
for (Method m : c.getMethods()) {
System.out.println(m.getName());
if (m.getName().equals("getSex")) {
System.out.println(m.invoke(obj));
}
}
使用Constructor ,可以设置参数
Class.forName的使用的更多相关文章
- Atitti 载入类的几种方法 Class.forName ClassLoader.loadClass 直接new
Atitti 载入类的几种方法 Class.forName ClassLoader.loadClass 直接new 1.1. 载入类的几种方法 Class.forName ClassLo ...
- Class.forName和ClassLoader.loadClass等
Class类 首先,Class类里可以记载所有类的属性.方法等信息.这个也就是运行时类别标记,它记录了所有的对象(比如int,MyClass,void,数组等等)对应的类信息. Class对象 JVM ...
- java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别
一.首先,查看Class类中的forName方法,可以发现有如下三个方法,但是我们通常用的是只有一个参数的方法. 简单介绍一下这三个方法: 第一个方法Class.forName("xxx&q ...
- Class.forName("com.mysql.jdbc.Driver") ;
try { Class.forName("com.mysql.jdbc.Driver") ; } catch(ClassNotFoundException e) { System. ...
- java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法
描述 Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Cla ...
- java中Class对象详解和类名.class, class.forName(), getClass()区别
一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享. 原来为就是涉及到Java的反射----- Java反射学习 所谓反射,可以 ...
- Class.forName()的作用
大家都用过Class.forName(),也都知道是类加载的作用,其实这方法不只是类加载,还有类初始化. 下面用个小例子说明一下: A类,是用来加载的类 /** * 用来测试类加载的类此类有 * 静态 ...
- Class.forName()用法及与new区别
平时开发中我们经常会发现:用到Class.forName()方法.为什么要用呢? 下面分析一下: 主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xx ...
- JDBC学习2:为什么要写Class.forName("XXX")?
Class.forName(String name) 接上一篇JDBC.本来这个内容是放在前面的一篇里面的一起的,后来发现越写越多,想想看就算了,还是单独开一篇文章好了,这样也能写得更加详细点. 上一 ...
随机推荐
- JavaScript从数组中删除指定值元素的方法
本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...
- ical4j 实现ICS文件的生成和解析
iCalendar 简介 iCalendar,简称"iCal",是"日历数据交换"的标准(RFC 2445),该标准提供了一种公共的数据格式用于存储关于日历方面 ...
- import第三方库的头文件找不到的错误
问题描述:使用cocoapods导入了第三方库,import该第三方库的某个头文件,然后编译报错找不到这个头文件内所import的头文件. 产生原因:我们需要配置头文件的搜索路径,告诉系统头文件的路径 ...
- 虚拟机VMware 12 Pro 永久许可证激活密钥
热门虚拟机软件VMware Workstation Pro现已更新至v12.5.2.12.0属于大型更新,专门为Win10的安装和使用做了优化,支持DX10.4K高分辨率显示屏.OpenGL 3.3. ...
- Alpha事后诸葛亮
Aruba小组Cento项目Postmortem 队员: 408 409 410 428 429 431 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- 编程结构:Promise和Future
非阻塞模型中Promise,Future 和 Callback一些比较常用的模型: Future表示一个可能还没有实际完成的异步任务结果:实际在编程中,应用future数据结构的时候,你得到并不是一个 ...
- Alpha阶段第六次Scrum Meeting
情况简述 Alpha阶段第六次Scrum Meeting 敏捷开发起始时间 2016/10/27 00:00 敏捷开发终止时间 2016/10/28 00:00 会议基本内容摘要 提出了目前阶段遇到的 ...
- 使用Pip安装distribute、nose、virtualenv
1 安装distribute sudo pip install distribute 2 安装nose sudo pip install nose 3 安装virtualenv sudo pip in ...
- jquery扫尾
blur和change事件的先后 change事件, 是要在失去焦点之后, 才和初始状态的值相比较, 如果在得到焦点等情况下, 你是无法和最后状态相比较等. 在失去焦点后, 首先触发等是change事 ...
- Linux下百度云盘报 获取bdstoken失败
在用linux下百度云盘工具(bcloud),登录时,报获取bdstoken失败. 在网上搜了一下,解决办法如下. 找到auth.py文件 locate auth.py |grep bcloud 结果 ...