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. IE 6 全球分布图 - 中国一枝独秀

    随着 Windows 8.1 预览版的发布,IE11也与大家见面了,不久后 IE 11 还将登陆 Windows 7 平台.但是,时至今日,在世界的某个地方,仍然有大量的用户在使用老态龙钟的 IE 6 ...

  2. jquery更改输入框type为密码框password

    很蛋疼的一个问题: <input type="text" id="e1" value="123" /> 用juqery将文本框变 ...

  3. EXT总结例子

     //页面按钮点击展开隐藏 {  空格                    xtype:'fieldset',                    title:'<b>高级搜索< ...

  4. Switch&NAT 测试

    测试环境: PC1:Windows10 iperf3 PC2:Ubuntu iperf3 都装有千兆网卡,直连的iperf速度是935Mbps. 因为TXRX两个方向的数据是差不多的,下面的测试数据只 ...

  5. 【原】KMeans与深度学习模型结合提高聚类效果

    这几天在做用户画像,特征是用户的消费商品的消费金额,原始数据(部分)是这样的: id goods_name goods_amount 男士手袋 1882.0 淑女装 2491.0 女士手袋 345.0 ...

  6. 计算机中位(bit), 字节(byte), 字(word)的关系

    1.位(bit) 来自英文bit,音译为“比特”,表示二进制位.位是计算机内部数据储存的最小单位,11010100是一个8位二进制数.一个二进制位只可以表示0和1两种状态(21):两个二进制位可以表示 ...

  7. 微信连WiFi expired timestamp 和sign错误小坑解决

    0.微信连WiFi需要时间戳毫秒,但是PHP本身没有自带这个函数.但是相对来说,Java和js获取毫秒时间戳就比较方便. 既然PHP没有,那么就自己写一个获取毫秒时间戳的函数,否则就会失败.实在懒得写 ...

  8. U盘因为装linux系统变小了

    U盘在Windows下被UltraISO等软件制作成Linux启动盘后会自动被格式化成FAT格式,导致容量变小. 用DiskGenius去修复 http://www.jb51.net/softs/75 ...

  9. [转]js获取域名、url、url参数值

    //获取域名host1 = window.location.host;host2 = document.domain; //获取页面完整地址url = window.location.href; 获取 ...

  10. JS操作cookies方法

    /** * 写入cookies */function setCookie(name, value) { var time = "1d"; //默认一天失效 var strsec = ...