首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java - ClassCastException关于下播

Java - ClassCastException关于下播
EN

Stack Overflow用户
提问于 2016-06-10 06:35:15
回答 2查看 187关注 0票数 0

我会尝试为gwt编写一个JSONparser。

为此,我在服务器端使用lib org.json,在客户端使用com.google.gwt.json.client。

我构建了一些接口来用相同的方法调用这两个lib。

我用:

代码语言:javascript
运行
复制
public class JSONObject extends com.google.gwt.json.client.JSONObject implements IJSONObject
{
  ...
}

代码语言:javascript
运行
复制
public class JSONObject extends org.json.JSONObject implements IJSONObject
{
  ...
}

所以它像沙姆士一样工作,但有一件事我是不会明白的。

客户端:

代码语言:javascript
运行
复制
JSONParser.parseLenient( sJson ).isObject()

从Type:"com.google.gwt.json.client.JSONObject"返回ans对象

我尝试将它转换到我的自定义JSONObject中,并得到一个ClassCastException。

我的自定义JSONObject从com.google.gwt.json.client.JSONObject扩展而来,并实现了我的IJSONobject。

所以如果我不能转换这个对象,我就不能使用这个界面。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-06-10 06:58:56

你肯定会得到ClassCastException的。

原因:

您正在尝试将一个对象"com.google.gwt.json.client.JSONObject“转换为一个对象”公共类JSONObject扩展com.google.gwt.json.client.JSONObject",这是不可能的。

示例:

代码语言:javascript
运行
复制
public class TestClassCast {

public static void main(String[] args) {

    A a = new A();
    B b = new B();

    A b1 = b; // This is possible since class B extends class A

    // B a1 = a; // This is not possible, which you are trying to do in your scenario.
}


}

class A {
    A(){};
}

class B extends A {
    B(){};
}
票数 2
EN

Stack Overflow用户

发布于 2016-06-10 06:55:14

ClassCastException on downcast

我觉得你应该从超级班开始。请试试这个:

代码语言:javascript
运行
复制
public class YourCustomJSON extends com.google.gwt.json.client.JSONValue implement IJSONobject
{
   ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37741416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档