老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人生感悟
    • 信息技术
    • 往事随风
    • 情感随笔
    • 文学创作
    • 生活记录
    • 评论杂谈
    • 人工智能
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 网上办公系统
  4. 正文

动态调用JavaBean的set方法(续)

2008年12月15日 4556点热度 0人点赞 3条评论

前面写过一篇文章,叫做动态调用JavaBean的set方法,讨论如何在java中动态的向JavaBean设置属性值,前提是调用JavaBean的类并不知道JavaBean中都有哪些属性,前面文章讨论的解决方法有一个问题,就是被调用的JavaBean中的属性必须是public的,这违背了面向对象语言的封装性,今天这个问题终于得到解决,完全抛弃前面所编写的代码,不过仍然是使用反射机制来实现的。

Java语言: 临时自用代码@代码发芽网
public Object setProperty(String ClassPath,HttpServletRequest req)
{
    try{
        Class ClassName=Class.forName(ClassPath);
        Object ClassInstance=ClassName.newInstance();
        Method[] MethToExe=ClassName.getDeclaredMethods();
        for(int i=0;i<MethToExe.length;i++)
        {                               
            String MethName=MethToExe[i].getName();
            if(MethName.substring(0, 3).equals("set"))
            {                           
                String Parameter=req.getParameter(MethName.substring(3));
                if(Parameter==null||Parameter.trim().equals(""))
                {
                    continue;
                }else{
                    Object arglist[] = new Object[1];
                    arglist[0] = new String(Parameter);                       
                    MethToExe[i].invoke(ClassInstance, arglist);
                }
            }
        }
        return ClassInstance;
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    return null;       
}

这里实现的是将前台request对象传递过来的数据封装到bean中,首先得到所有的方法,如果是set方法,那么就使用invoke方法调用这个函数,这种方法基本上可以满足系统的需求了。

标签: java javabean 网上办公系统
最后更新:2008年12月15日

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞
订阅评论
提醒
guest

guest

3 评论
内联反馈
查看所有评论
hope
hope
游客
2009年4月29日 下午6:51

哈哈,会的

0
回复
hope
hope
游客
2009年4月29日 下午4:22

吼吼,正在网上搜索invoke什么意思,结果搜到你了,哈哈……

0
回复
老杨
老杨
作者
回复给  hope
2009年4月29日 下午6:48

@hope @hope, 看来你多读读我的博客能节省不少时间

0
回复

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
最新 热点 随机
中国是不是体育强国? 成功的必备因素 关于华为 别再侮辱我的智商 春秋航空让人长见识 第二青春计划失败 第二青春计划 模型训练错误RuntimeError: expected scalar type Half but found Float 加载onnx模型进行推理 PyTorch模型转onnx格式
生产力与生产关系 还是看不开 会议记录 Semor推荐:Firefox插件All-In-One Gestures 为多用户安装Anaconda及其使用方法 老杨首波主打歌—手放开 网络背后 批量下载163相册工具AlbumCon html中frame的使用 时间空间and混乱
最新评论
  • 关于华为上的老杨确实,苹果手机系统还是有优势的。
  • 关于华为上的乱云AKAY自从换了苹果手机后,对手机再没以前那样热爱研究了,主要是系统省心。
  • 第二青春计划失败上的老杨第二都失败了,第三就算了吧。
  • 春秋航空让人长见识上的老杨应该提供一点水,至少给不想买水的人一个选择的空间。
  • 别再侮辱我的智商上的老杨那个很好,很值得。
  • 关于华为上的老杨Next系统基本没广告。大部分广告都可以关掉吧,我记得我写过一个文章,…
  • 第二青春计划失败上的xqiushi开始第三青春计划吧。
  • 春秋航空让人长见识上的xqiushi那个桌板能放下小米多看电子书,还是不错的。 这个矿泉水市面上没有,特供…
  • 别再侮辱我的智商上的xqiushi只投了那100亿的项目。
  • 关于华为上的xqiushi今年我爸的手机也换成华为,家庭里手机基本都是华为。最不满意的一点就是广…

Google java jsp linux QQ wordpress 中国 习惯 人生 公司 决定 博士 博客 同学 国家 大学 学习 实验室 家 小说 工作 开始 思考 情感 手机 技术 推荐 插件 数据库 文件 晴迷星途 朋友 生活 电影 相声 程序 笔记 网站 网络 置顶 美国 评论 软件 音乐 项目

关注公众号

COPYRIGHT © 2020 老杨说话的地方. ALL RIGHTS RESERVED.

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号