开发者社区> 问答> 正文

idea编译打包结果和eclipse编译打包结果不同

同样的代码,在idea里跑的时候就会出错,在eclipse里面就没有问题,通过idea发布的也有问题,而通过eclipse发布的就没有,请问这个怎么解决?

代码如下,在idea中,第18行会报错,java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean Cannot be cast to Request。但是在eclipse中就可以

 
public static JsonClient jsonToClient(String clientJsonString) throws Exception{
        JsonClient jsonClient  = new JsonClient();
        //实际返回client对象
        Client client = new Client() ;
        List<Request> requestList = new ArrayList<Request>();
         
        JSONObject clientJsonObject = JSONObject.fromObject(clientJsonString.replaceAll("\\t", ""));
        jsonClient = (JsonClient)JSONObject.toBean(clientJsonObject, JsonClient.class);
        //解析client
        Client tempClient = (Client)JSONObject.toBean(JSONObject.fromObject(jsonClient.getClient()), Client.class);
         
        BeanUtils.copyProperties(tempClient, client, new String[]{"requests"});
        //为防止下面代码出现错误,先将client组织到JSONClient中
        jsonClient.setClient(client);
        //获取request的list            
        List<Request> tempRequestList = tempClient.getRequests();
        //解析request
        for (Object requestObject : tempRequestList) {
            Request clientRequest = new Request();
            Request tempRequest = (Request) JSONObject.toBean(JSONObject
                    .fromObject(requestObject), Request.class);
            String command = tempRequest.getCommand();
            //判断是否存在这个command
            if(AppServerCommon.COMMAND_INPUTDATA.containsKey(command)){
                Class<?> command_inputdata = AppServerCommon.COMMAND_INPUTDATA.get(command);
                 
                Object inputData  = JSONObject.toBean(JSONObject.fromObject(tempRequest.getInputData()),command_inputdata);
                 
                //组织RequestList
                BeanUtils.copyProperties(tempRequest, clientRequest, new String[]{"inputData"});
                clientRequest.setInputData(inputData);
                requestList.add(clientRequest);
            }else{
                logger.error("不支持command:" + command);
                clientRequest.setCommand(command);
                requestList.add(clientRequest);
            }
        }
 

展开
收起
爵霸 2016-06-13 10:43:12 3391 0
1 条回答
写回答
取消 提交回答
  • eclipse有自己的编译器。所以有些静态信息在编译过程中保留下来了。比方说方法中的变量名。

    不信你用ant javac编译你的程序一定还会出错。

    你这个是GWT的项目?,也许是少了一些编译环节了吧?

    2019-07-17 19:35:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关镜像