我的问题是什么是实现升级过时对象的好方法?
例如,假设你有一个这样的类:
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知道它不存在?
谢谢
我正在尝试使用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) 在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。
有没有办法在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那么它看起来会很清晰.
在其他一些编辑器窗口脚本中,我看到 GUI 样式,例如"OL Title"和"OL Minus"。我想要一个资源来显示我们可以访问的所有样式(如果它描述/显示了它们的样子,那就更好了)。我假设它存在于某个地方,否则这些脚本的开发人员如何知道它们存在?我只是在任何地方都找不到它。
好的,我正在尝试制作一个简单的游戏.我有一个名为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) 我正在使用Slick2D库来向屏幕呈现文本,但为了呈现像Rect这样的gl形状,我需要先禁用GL_TEXTURE_2D.我只是好奇为什么需要它.为什么GL_TEXTURE_2D禁用形状渲染?