首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从json字符串解析时未调用对象构造函数。

从json字符串解析时未调用对象构造函数。
EN

Stack Overflow用户
提问于 2014-05-21 21:41:54
回答 1查看 970关注 0票数 0

为什么没有调用IACircle构造函数?

我就是这样装Json的..。

代码语言:javascript
复制
BufferedReader br = new BufferedReader(in);
LevelDefinition ld = new Gson().fromJson(br, LevelDefinition.class);

Json字符串..。

代码语言:javascript
复制
{
    "iaCircles": [
        {
            "x": -32.0,
            "y": -5.0,
            "angle": 0.0,
            "radius": 2.5,
            "density": 0.0,
            "friction": 0.0,
            "restitution": 1.0,
            "textureSelection": "CIRCLE",
            "inflictsDamage": true,
            "fixedRotation":true
        },
        {
            "x": 55.0,
            "y": -5.0,
            "angle": 0.0,
            "radius": 2.5,
            "density": 0.0,
            "friction": 0.0,
            "restitution": 1.0,
            "textureSelection": "CIRCLE",
            "inflictsDamage": true,
            "fixedRotation":true
        }
    ]
}

Java类解析为..。

代码语言:javascript
复制
public class LevelDefinition {

    private Vector<IACircle> iaCircles;
}

IACircle定义。

代码语言:javascript
复制
public class IACircle {
    public IACircle (
        float x, float y, float angle, float radius,
        float density, float friction, float restitution,
        String textureSelection, boolean inflictsDamage, boolean fixedRotation) { 
        System.out.println("constructor called, circle");
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 21:47:19

您应该为类定义默认的非args构造函数。GSON只调用no-args构造函数来初始化类.您有一个带参数的构造函数,这就是不调用它的原因;它创建一个ObjectConstructor来初始化。试试这个:

代码语言:javascript
复制
public class IACircle {
    public IACircle () { 
        System.out.println("constructor called, circle");
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23794317

复制
相关文章

相似问题

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