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的使用的更多相关文章

  1. Atitti 载入类的几种方法    Class.forName ClassLoader.loadClass  直接new

    Atitti 载入类的几种方法    Class.forName ClassLoader.loadClass  直接new 1.1. 载入类的几种方法    Class.forName ClassLo ...

  2. Class.forName和ClassLoader.loadClass等

    Class类 首先,Class类里可以记载所有类的属性.方法等信息.这个也就是运行时类别标记,它记录了所有的对象(比如int,MyClass,void,数组等等)对应的类信息. Class对象 JVM ...

  3. java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别

    一.首先,查看Class类中的forName方法,可以发现有如下三个方法,但是我们通常用的是只有一个参数的方法. 简单介绍一下这三个方法: 第一个方法Class.forName("xxx&q ...

  4. Class.forName("com.mysql.jdbc.Driver") ;

    try { Class.forName("com.mysql.jdbc.Driver") ; } catch(ClassNotFoundException e) { System. ...

  5. java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法

    描述 Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Cla ...

  6. java中Class对象详解和类名.class, class.forName(), getClass()区别

    一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享. 原来为就是涉及到Java的反射----- Java反射学习 所谓反射,可以 ...

  7. Class.forName()的作用

    大家都用过Class.forName(),也都知道是类加载的作用,其实这方法不只是类加载,还有类初始化. 下面用个小例子说明一下: A类,是用来加载的类 /** * 用来测试类加载的类此类有 * 静态 ...

  8. Class.forName()用法及与new区别

    平时开发中我们经常会发现:用到Class.forName()方法.为什么要用呢? 下面分析一下: 主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xx ...

  9. JDBC学习2:为什么要写Class.forName("XXX")?

    Class.forName(String name) 接上一篇JDBC.本来这个内容是放在前面的一篇里面的一起的,后来发现越写越多,想想看就算了,还是单独开一篇文章好了,这样也能写得更加详细点. 上一 ...

随机推荐

  1. 让JavaScript回归函数式编程的本质

    JavaScript是一门被误会最深的语言,这话一点不假,我们看下它的发展历史. 1995年,Netscape要推向市场,需要一门脚本语言来配套它.是使用一门已有的语言,还是发明一门新的语言,这也不是 ...

  2. Linux ubuntu安装

    http://www.ubuntu.org.cn/download/alternative-downloads 下载地址: http://releases.ubuntu.com/ 国内镜像: http ...

  3. E - Super Jumping! Jumping! Jumping!

    /* Nowadays, a kind of chess game called "Super Jumping! Jumping! Jumping!" is very popula ...

  4. WinNTSetup v3.8.7 正式版绿色增强版

    最强系统安装利器:WinNTSetup 现已更新至 v3.8.7 正式版!这次更新修复调整了诸多问题,新版非常好用接近完美!WinNTSetup 现在已经自带BCDBoot 选项,并且完全支持Wind ...

  5. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)

    ギリギリ eye Description A.D.1999,由坠落地球的“谜之战舰”带来的 Over Technology,揭示了人类历史和远古文明之间的丝丝联系, 促使人类终止彼此间的战争,一方面面 ...

  6. backup mysql

    #!/bin/bashcd /home/Licw/backup_openDBNow=$(date +"%m-%d-%Y--%H:%M:%S")#echo $NowFile=$Now ...

  7. 11月8日PHP练习《留言板》

    一.要求 二.示例页面 三.网页代码及网页显示 1.denglu.php  登录页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  8. JVM垃圾回收算法

  9. C语言基础(1)-基本语法及注意事项

    1. include 头文件包含 #include <stdio.h>这个是hello world程序的第一句话 # 代表预编译指令 #include的意思就是头文件包含,使用C语言库函数 ...

  10. 关于hg的命令

    整理的创建分支合并一个分支的代码步骤:1.创建一个目录用于作为本地仓库mkdir Center2.将远端代码克隆到本地仓库(这时我的位置在刚创建的Center目录下)hg clone HTTP DIR ...