我的代码在命令行java
工具中按预期正常运行。
当我添加到eclipse时,相同的代码会引发一些错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot cast from Object to long
在线:
long statusId = (long)json.get("status_id");
然而,使用javac
和java
命令,我运行程序并成功输出。
代码:
public InitOrderResponse connect()
{
Authentication auth = new Authentication();
String response = auth.httpBasicAuth(this.constructUrl(),this.key);
JSONObject json = (JSONObject) JSONValue.parse(response);
String merchantId = (String)json.get("merchant_id");
long statusId = (long)json.get("status_id");
String status = (String)json.get("status");
String orderId = (String)json.get("order_id");
initOrderResponse = new InitOrderResponse();
initOrderResponse.setStatus(status);
initOrderResponse.setOrderId(orderId);
initOrderResponse.setStatusId(statusId);
initOrderResponse.setMerchantId(merchantId);
return initOrderResponse;
}
答案 0 :(得分:0)
您的eclipse将错误/警告约束设置为某些条件的错误,默认情况下不会由Java编译器强加。要更改这些规则,请右键单击该项目,单击属性。在' Java编译器'菜单,转到'错误/警告'。在那里,您可以为编译器设置约束以提供错误/警告。
答案 1 :(得分:0)
问题在于Jdk版本。当我将jdk更改为指向Sun的JDK时。一切都按预期工作。