同样的代码,在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);
}
}
eclipse有自己的编译器。所以有些静态信息在编译过程中保留下来了。比方说方法中的变量名。
不信你用ant javac编译你的程序一定还会出错。
你这个是GWT的项目?,也许是少了一些编译环节了吧?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。