小编got*_*ch4的帖子

Java泛型为什么我不能实例化泛型类型

我正在使用泛型来写东西,令我惊讶的是我发现这不起作用:

class foo<T>{

 T innerT = new T();

}
Run Code Online (Sandbox Code Playgroud)

所以我不能实例化泛型类型?有没有办法做到这一点?

java generics type-erasure

5
推荐指数
3
解决办法
2436
查看次数

Gson不会序列化子类中定义的字段

出于某种未知原因,如果我有:

class A{
int stars;
public int getStars(){
return stars;
}

public void setStarts(int stars){
this.stars = stars;
}
}

class B extends A{
 int sunshines;

[getter and setter for sunshines]
}

class C{
 List<A> classes;
[get and set for classes]
}
Run Code Online (Sandbox Code Playgroud)

如果我序列化类型CI的对象在字段类中的序列化对象中只有A的字段(如果对象是B,我希望有B的字段).

怎么做?

java gson

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

提升初学者,提升::绑定梦魇

我有这个标题(从增强asio示例重做):

    #ifndef MSGSRV_H_
#define MSGSRV_H_
#include <asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/system/error_code.hpp>


namespace msgSrv {

class msgSrv {

private:
    asio::ip::udp::socket *asioSocket;
    asio::io_service *asioIoService;
    int listenPort;
    boost::array<char,1> rcvBuff;
    asio::ip::udp::endpoint lastRcvdPcktEndp;

public:
    msgSrv(int listenPort);
    virtual ~msgSrv();

    void start();
    void pckRcvd( boost::system::error_code &, std::size_t);
};

}
Run Code Online (Sandbox Code Playgroud)

和.cpp:

#include "msgSrv.h"

namespace msgSrv {

    msgSrv::msgSrv(int listenPort) {
        // TODO Auto-generated constructor stub
        this->listenPort = listenPort;
        try{
            asioIoService = new asio::io_service();
            asioSocket =  new asio::ip::udp::socket(*asioIoService, asio::ip::udp::endpoint(asio::ip::udp::v4(), listenPort)); //new asio::ip::udp::socket_(*asioIoService, udp::endpoint(udp::v4(), listenPort));
        }catch(std::exception &e){ …
Run Code Online (Sandbox Code Playgroud)

c++ boost bind

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

Javascript和Windows

我注意到如果我在Windows资源管理器中有一个.js文件(不是Internet Explorer,我的意思是文件夹资源管理器......)我实际上可以点击它然后执行,给出错误消息,比如说"window object is未定义".是否有关于运行.js脚本的环境和可用对象的更多信息?

javascript windows explorer windows-xp

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

C++ STL unordered_map问题和疑惑

在Java和C#工作了几年之后,我现在又回到了C++.当然,我的编程风格受这些语言的影响,我倾向于感觉需要大量使用的特殊组件:HASH MAP.在STL中有hash_map,GCC说它已被弃用,我应该使用unordered_map.所以我转向它.我承认我不确定我正在做什么的可移植性,因为我必须使用编译器开关打开即将推出的标准的-std = c ++ 0x功能.无论如何,我对此很满意.如果我上课,我就无法工作

std::unordered_map<unsigned int, baseController*> actionControllers;
Run Code Online (Sandbox Code Playgroud)

并在一个方法中:

void baseController::attachActionController(unsigned int *actionArr, int len,
        baseController *controller) {
    for (int i = 0; i < len; i++){
        actionControllers.insert(actionArr[i], controller);
    }
}
Run Code Online (Sandbox Code Playgroud)

它出现了通常的象形文字说它无法找到插入...提示?

c++ stl hashmap c++11

4
推荐指数
2
解决办法
3940
查看次数

c ++析构函数一塌糊涂,无法调试

当我运行我的程序时,一切都很顺利.最后打印出来:

*** glibc detected *** ./streamShare: double free or corruption (fasttop): 0x08292130 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xcc2ff1]
/lib/tls/i686/cmov/libc.so.6[0xcc46f2]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xcc779d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x1c86f1]
./streamShare[0x804be7f]
./streamShare[0x804be3e]
./streamShare[0x804abc0]
./streamShare[0x804a5f2]
./streamShare[0x804a1c4]
./streamShare[0x804a1d7]
./streamShare[0x804a46a]
./streamShare[0x804ba45]
./streamShare[0x804b49c]
./streamShare[0x804ac68]
./streamShare[0x804ac48]
./streamShare[0x804a676]
./streamShare[0x804a237]
./streamShare[0x8049a3f]
./streamShare[0x804d2e5]
./streamShare[0x804d34d]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xc6eb56]
./streamShare[0x8049361]
Run Code Online (Sandbox Code Playgroud)

我检查过,它发生在一个函数返回时,程序的所有对象都会自动进行实例化.无论如何,我没有为这些对象定义任何析构函数,我尝试使用STL容器和TR1 shared_ptr.我想一切都发生在默认的析构函数中.有没有办法知道它在哪里分手?我的意思是,我想知道哪个物体破坏会造成整个混乱.我正在使用这些容器和共享指针:

typedef std::tr1::shared_ptr<messageListener> mlsptr;

typedef std::map<const char*, mlsptr, ltstr> CONSTCHP2MSLST;
Run Code Online (Sandbox Code Playgroud)

messageListener没有析构函数.其中两个向量:

std::vector<MSG> queueto1;
Run Code Online (Sandbox Code Playgroud)

其中MSG析构函数是:

MSG::~MSG() {
    destroy();
}

void MSG::destroy() {
    if (payload != NULL)
        delete[] payload;
    payload = NULL;
    payloadLen = 0;
}
Run Code Online (Sandbox Code Playgroud)

从来没有出现问题,我不应该......

任何推荐如何跟踪这个问题?我很笨...

编辑:

这里是VALGRIND输出:

valgrind ./streamShare -v …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

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

GSON只是从Json数据中读取JsonObject树不起作用

我正在使用GSON进行项目.特别是我使用此代码生成JSON字符串:

Gson gs = new Gson();
        JsonObject cmdobj = new JsonObject();
        cmdobj.addProperty("cmd", cmd);

        cmdobj.add("arg", args);

        String cmdstr = cmdobj.toString();
Run Code Online (Sandbox Code Playgroud)

它产生的东西如下:

{"cmd":"HANDSHAKE","arg":{"protocol":"syncmanager","serverName":"12345678910"}}
Run Code Online (Sandbox Code Playgroud)

然后在客户端机器上读取json数据:

String cmdstr = readCommand(this.is);
        Gson gs = new Gson();
        JsonObject jsobj = gs.fromJson(cmdstr, JsonObject.class);
        JsonElement cmd = jsobj.get("cmd");
        JsonObject args = jsobj.get("arg").getAsJsonObject();
Run Code Online (Sandbox Code Playgroud)

问题是应该包含已解析对象的jsobj不包含任何内容(如果我执行toString()print {}).为什么这个?我只想要另一边的JSonObject树,而不是对象序列化.有线索吗?

gson

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

NanoHTTPD的另一种方法是处理同时连接?

我开始在项目中使用NanoHTTPD.事实上,它的简洁性非常好.不幸的是,事实证明我需要处理同时连接,例如我有一个很长的响应,同时服务器不会被阻止.

您有什么推荐的吗?我需要它简单,功能丰富的Nano.

java apache nanohttpd

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

Spring和Hibernate事务

我是Spring的新手,我只是阅读有关Hibernate-Spring集成(版本3)的文档.我不明白为什么自动事务管理(声明性管理)应用于文档中的"服务",而不是直接应用于DAO实现.特别是我不知道服务意味着什么,与DAO相比有什么不同,如果真的需要提供与Spring的Hibernate集成.

我试图做的只是使用Hibernate DAO实现并在XML中配置以在实例化时设置会话工厂.无论如何,抛出异常,因为Spring不允许非事务性的hibernate访问.所以为了添加事务访问,我是否必须添加"服务"的东西?这与简单的DAO有什么不同?

spring hibernate

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

是否有可能在内存表面上绘制OpenGL?

我开始学习OpenGL,我想知道是否可以将它绘制在我通过其他库获得的视频内存缓冲区上?

opengl

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