小编Ada*_*nan的帖子

反序列化版本冲突

我的问题是什么是实现升级过时对象的好方法?

例如,假设你有一个这样的类:

public class Foo() implements Serializable {
    int a;
    String b;
}
Run Code Online (Sandbox Code Playgroud)

然后你序列化这个对象.然后,您可以通过添加以下内容为您的课程添加更多功能:

...
int c;
...
Run Code Online (Sandbox Code Playgroud)

您仍然希望保留序列化对象中的信息,但我知道如果您尝试反序列化它将会有冲突.那么有没有办法(可能通过检查serialVersionUID)设置一个值来int c知道它不存在?

谢谢

java deserialization

7
推荐指数
1
解决办法
198
查看次数

使用单独的.h和.cpp文件增强序列化

我正在尝试使用boost序列化库,我已经完成了大部分工作.唯一的问题是当我尝试序列化具有单独的.h和.cpp文件的对象时.当我使用此命令编译时:

g++ boostSerialize.cpp Class.cpp -lboost_serialization
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

/tmp/cc8kbW6J.o: In function `void boost::serialization::access::serialize<boost::archive::text_oarchive, Class>(boost::archive::text_oarchive&, Class&, unsigned int)':
boostSerialize.cpp:(.text._ZN5boost13serialization6access9serializeINS_7archive13text_oarchiveE5ClassEEvRT_RT0_j[void boost::serialization::access::serialize<boost::archive::text_oarchive, Class>(boost::archive::text_oarchive&, Class&, unsigned int)]+0x25): undefined reference to `void Class::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive&, unsigned int)'
Run Code Online (Sandbox Code Playgroud)

这就是我的.h:

#ifndef CLASS_H
#define CLASS_H
#include <iostream>
#include <string>
#include <boost/serialization/access.hpp>

using namespace std;

class Class{

    friend class boost::serialization::access;
    int a,b,c;
    string stringy;
    template<class Archive>
        void serialize(Archive &ar, const unsigned int);
    public:
        Class(int ab, int bb, int cb);

};
#endif
Run Code Online (Sandbox Code Playgroud)

和我的.cpp:

#include <iostream>
#include "Class.h"

using namespace std;

Class::Class(int ab, int bb, …
Run Code Online (Sandbox Code Playgroud)

c++ serialization boost header-files

5
推荐指数
1
解决办法
2239
查看次数

插入Google API时如何设置日历ID?

在Google文档中使用calendar.calendars.insert的文档中的测试API Invalid resource id value.时,在设置此类请求时,我总是作为响应返回

{
    "summary": "Events",
    "description": "This is where you will keep your events",
    "id": "test.events"
}
Run Code Online (Sandbox Code Playgroud)

该文档说,id只要没有连续两个点,并且长度大于0且小于101,它可以是任何字符串。

我究竟做错了什么?我希望能够设置,id所以我不必在数据库中存储具有随机字符的id。

google-calendar-api google-api

5
推荐指数
1
解决办法
1701
查看次数

CSS中的Bezier曲线?

有没有办法在CSS中获得这种更好的效果?正如你在小提琴中看到的那样,我使用canvas将这个代码添加到窗口控件句柄的curvey底部:

ctx.beginPath();
ctx.moveTo(20,0);
ctx.bezierCurveTo(25,15,0,10,-1,35);
ctx.strokeStyle="#000"
ctx.lineWidth=4;
ctx.stroke();
ctx.lineTo(-1,0);
ctx.lineTo(300,0);
ctx.fillStyle="#222"
ctx.fill();
ctx.closePath();
Run Code Online (Sandbox Code Playgroud)

但它看起来不太好.它很模糊,并没有完全排队.如果我可以使用CSS那么它看起来会很清晰.

css bezier curve

2
推荐指数
1
解决办法
4302
查看次数

是否有适用于 Unity 附带的所有自定义 GUI 样式的资源?

在其他一些编辑器窗口脚本中,我看到 GUI 样式,例如"OL Title""OL Minus"。我想要一个资源来显示我们可以访问的所有样式(如果它描述/显示了它们的样子,那就更好了)。我假设它存在于某个地方,否则这些脚本的开发人员如何知道它们存在?我只是在任何地方都找不到它。

unity-game-engine

1
推荐指数
1
解决办法
4787
查看次数

嵌套的结构和使用C++访问数据

好的,我正在尝试制作一个简单的游戏.我有一个名为Equipment的结构,其中包含每个部分的结构,即头盔,主体等.在设备的构造函数中,我让它创建子结构的对象,在子结构构造函数中,我让它们初始化字符串向量.

所以我的问题是在我的main函数中我创建了一个设备对象但是当我尝试访问例如woodHelm时,我得到了编译错误:'struct Equipment'没有名为'helm'的成员.我究竟做错了什么?或者还有另一种方法可以做得更好吗?

这是我的Equipment.h(忽略其他子结构,我还没有初始化它们):

#ifndef EQUIP_H
#define EQUIP_H
#include <vector>
#include <string>

using namespace std;

struct Equipment{
    Equipment();
    struct Helmet{
    Helmet(){
        const char* tmp[] = {"Wooden Helmet","1",""};
        vector<string> woodHelm (tmp,tmp+3);
        const char* tmp1[] = {"Iron Helmet","2",""};
        vector<string> ironHelm (tmp1,tmp1+3);
        const char* tmp2[] = {"Steel Helmet","3",""};
        vector<string> steelHelm (tmp2,tmp2+3);
        const char* tmp3[] = {"Riginium Helmet","5","str"};
        vector<string> rigHelm (tmp3,tmp3+3);
    }
    };
    struct Shield{
    Shield(){
        vector<string> woodShield ();
        vector<string> ironShield ();
        vector<string> steelShield ();
        vector<string> rigShield ();
    }
    };
    struct Wep{
    Wep(){
        vector<string> …
Run Code Online (Sandbox Code Playgroud)

c++ struct compiler-errors

0
推荐指数
1
解决办法
2万
查看次数

为什么要在渲染形状后绘制字符串,我为什么需要禁用GL_TEXTURE_2D?

我正在使用Slick2D库来向屏幕呈现文本,但为了呈现像Rect这样的gl形状,我需要先禁用GL_TEXTURE_2D.我只是好奇为什么需要它.为什么GL_TEXTURE_2D禁用形状渲染?

java opengl lwjgl slick2d

0
推荐指数
1
解决办法
430
查看次数