偏执无明 2019-07-08 15:24 采纳率: 0%
浏览 3581
已采纳

java根据传入的参数实例化不同的对象

自己的写的代码中存在多个方法,类似这样。

public String a10100Process(String code) throws Exception {
        A10100Request a10100Request = SpringUtil.getBean( "A10100Request", A10100Request.class);
       ………………………………
        return a10100Request.toString();
    }

        public String a10101Process(String code) throws Exception {
        A10101Request a10101Request = SpringUtil.getBean( "A10101Request", A10101Request.class);
       ………………………………
        return a10101Request.toString();
    }

我如何能够做到通过传入不同的code,实例化不同的对象。

图片说明

换句话说红框中的内容是否是可以使用变量存储的,我自己试过使用Class.forName的方式获取到class是不能够作为类型来定义变量的。

  • 写回答

4条回答 默认 最新

  • threenewbee 2019-07-08 15:37
    关注

    Class.forName是可以的,但是名字吆包含包名,要完整,要大小写匹配,要先加载对应的jar包(如果是外部的类)
    https://blog.csdn.net/chang3247/article/details/72285923/
    要注意私有构造函数/私有类的问题
    https://blog.csdn.net/hexingen/article/details/79355193

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 风雨后的晴 2019-07-08 15:38
    关注

    可以看出,您的A10100Request,A10101Request是类。是类就可以通过Class反射来设计。传递的参数可以用Class来实现分类。不一定非要用code。
    public String ClassProcess(Class clazz) throws Exception {
    Object obj = SpringUtil.getBean( clazz.getSimpleName(), clazz);
    return obj.toString();
    }

    评论
  • 郭老师的小迷弟雅思莫了 Java领域新星创作者 2019-07-08 16:21
    关注

    其实很简单,一个共同的方法,通过传入的code来实例化不同的对象

    public String a10100Process(String code) throws Exception {
            //你的code是不是已知的,就是固定是多少的?
                    String str="";
                    if(code.equles("a10100"))
                    {
                             A10100Request a10100Request= SpringUtil.getBean( "A10100Request", A10100Request.class);
                             str= a10100Request.toString();
                    }else if(code.equles("a10101"))
                    {
                            A10101Request a10101Request = SpringUtil.getBean( "A10101Request", A10101Request.class);
                            str=a10101Request.toString();
                    }
            return str;
        }
    
    
    评论
  • 猿9527 2019-07-08 17:45
    关注

    这不就是工厂模式吗。。。

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 反编译一款APP手游,解密出lua脚本。
  • ¥15 改一下,代码,让代码符合要求
  • ¥15 报错问题,只有两个错误,如图片所示,i多次初始化
  • ¥15 matlab runtime 如何收费
  • ¥20 用C语言绘制cs1.6方框透视 出现了点问题 绘制不上去 矩阵数据 和敌人坐标都是正确的
  • ¥15 Tpad api账户 api口令
  • ¥30 ppt进度条制作,vba语言
  • ¥15 生信simpleaffy包下载
  • ¥15 在二层网络中,掩码存在包含关系即可通信
  • ¥15 端口转发器解析失败不知道电脑设置了啥