• 获得类对象的四种方法


    转载自: http://duben.iteye.com/blog/367218

    在学习反射机制时,总结一下获得类对象方式: 第一种方式:通过类本身来获得对象

    Java代码  收藏代码
    1. Class classname =  this .getClass();  

    第二种方式:通过子类的实例获取父类对象

    Java代码  收藏代码
    1. ClassName cn =  new  ClassName();  
    2. UserClass = cn.getClass();  
    3. Class SubUserClass = UserClass.getSuperclass();   

    第三种方式:通过类名加.class获取对象

      

    Java代码  收藏代码
    1. Class ForClass = **.**.ClassName. class ;(类在包中的路径加. class )  

    第四种方式:通过类名的字符串获取对象

    Java代码  收藏代码
    1. Class ForName = Class.forName( "**.**.ClassName" );  

       这种方式在jdbc中常用到。


    举例: 1. 通过类名字字符串得到类的实例, 调用方法

    1. import java.lang.reflect.Constructor;  
    2. import java.lang.reflect.Method;  
    3. import java.lang.reflect.Modifier;  
    4. import java.text.SimpleDateFormat;  
    5. import java.util.Date;  
    6. import java.util.GregorianCalendar;  
    7. import java.util.List;  
    8. import jxl.biff.Type;  
    9.   
    10. import org.springframework.context.ApplicationContext;  
    11. import com.dongxin.dxcs.bean.SysCode;  
    12. import com.dongxin.dxcs.common.ApplicationConfig;  
    13. import com.dongxin.dxcs.common.DateUtil;  
    14. import com.dongxin.dxcs.modeleinit.bizlogic.ModeleinitBiz;  
    15. import com.dongxin.dxcs.bean.*;  
    16. public class MainTest1 {  
    17. public MainTest1(){  
    18.    Class[] sl = {String.class};//将要SET的数据类型   和setPrice中的Price类型匹配  
    19.    Class[] fl = {Float.class};  
    20.    Class[] il = {Integer.class};  
    21.    try{  
    22.     Class c =Class.forName("com.dongxin.dxcs.bean.DatStock5");//注册类  
    23.     Object obj = c.newInstance();//获得该类的实体对象,空构造法方法  
    24.     Object[]   parameter1   = {new Float(4.68f)};//设置该类的setCode(String code)方法的参数  
    25.     c.getMethod("setPrice", fl).invoke(obj, parameter1);//调用setCode(String code)方法  
    26.     System.out.println(c.getMethod("getPrice").invoke(obj));//调用getCode()方法,并打印code属性的值  
    27.      
    28.    }catch (Exception e){  
    29.     e.printStackTrace();  
    30.    }  
    31. }  
    32.   
    33. public static void main(String[] args) {  
    34.     
    35.    MainTest1 frame = new MainTest1();  
    36. }  
    37. }  
  • 相关阅读:
    myBatis之事务管理
    关于Spring事务回滚的问题
    mysql中的多行查询结果合并成一个
    mybatis传递参数到mapping.xml
    EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性
    写给java开发的运维笔记
    SpringMVC学习系列(11) 之 表单标签
    eclipse 安装svn插件
    linux(centos)搭建SVN服务器
    JavaServer Faces 2.0 can not be installed解决方案
  • 原文地址:https://www.cnblogs.com/heartstage/p/3409658.html
Copyright © 2020-2023  润新知