同样的代码,在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);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
同问.
在用JActor时,也出现过这样的问题.Eclipse能编译,Idea却报错.而且程序还能正确运行的.
eclipse有自己的编译器。所以有些静态信息在编译过程中保留下来了。比方说方法中的变量名。
不信你用antjavac编译你的程序一定还会出错。
你这个是GWT的项目?,也许是少了一些编译环节了吧?
ant编译不报错eclipse使用的自己的编译器ecj编译的
IDEA是用的javac编译的。
某些情况下可能存在问题,ecj编译的代码兼容性好,javac编译要严格点
首先,这个和编译器神马的没有太大关系.
其次,主要的原因是IDEA 用的是MAVEN 编译,
出现这个问题应该是你POM.XML文件中的引用没有配置正确.
主要可能是此类的项目没有在文件中声明或者是在多个项目中存在冲突
又或者是这个缺少的类对应的JAR包版本不对.
解决方法就是仔细检查POM.XML文件中的项目内容.
我怎么没找着pom.xml文件?..检查一下JDK的版本。