无法将org.json.JSONObject强制转换为Serializable_JSONObject

时间:2018-06-06 17:04:02

标签: java casting

enter image description here我在投票时收到以下错误

Caused by: java.util.concurrent.ExecutionException: java.lang.ClassCastException: org.json.JSONObject cannot be cast to NCRB_GUIs.DeviceGroupManager.FetcherForms.Serializable_JSONObject

我的Serializable_JSONObject定义为:

import java.io.Serializable;
import org.json.JSONObject;
public class Serializable_JSONObject extends JSONObject implements Serializable{}

我不确定为什么我收到此错误。这是抛出异常的代码......

    @Override
    public ReturnInterface<Serializable_JSONObject> call() throws Exception {
        CredentialInterface ci = (CredentialInterface) this.taskDeployInterface;
        JSONObject READ_NO_VALIDATION = WebGet.READ_NO_VALIDATION(ci.getUser(), ci.getPassword(), new URL(ci.getHost()));
        Serializable_JSONObject o = (Serializable_JSONObject) READ_NO_VALIDATION;//Error thrown here
        this.returnItem = o;
        return this;
    }

1 个答案:

答案 0 :(得分:1)

我认为这个问题正在发生,因为WebGet.READ_NO_VALIDATION(ci.getUser(), ci.getPassword(), new URL(ci.getHost()));代码行重新构建了JsonObject而不是Serializable_JSONObject的对象,而Serializable_JSONObjectJsonObject的子类你不能将JosnObject的对象转换为子类对象。您可以通过READ_NO_VALIDATION.getClass()调试READ_NO_VALIDATION是哪个类的对象。