小编tec*_*zen的帖子

杰克逊和泛型类型参考

我想使用jackson json库作为通用方法,如下所示:

public MyRequest<T> tester() {
    TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>();  
    MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonRequest, typeRef);
    return requestWrapper.getRequest();
}
Run Code Online (Sandbox Code Playgroud)

...

public class MyWrapper<T> {

    private MyRequest<T> request;

    public MyRequest<T> getRequest() {
        return request;
    }

    public void setRequest(MyRequest<T> request) {
        this.request = request;
    }
}


 public class MyRequest{
     private List<T> myobjects;

     public void setMyObjects(List<T> ets) {
         this.myobjects = ets;
     }

     @NotNull
     @JsonIgnore
     public T getMyObject() {
         return myobjects.get(0);
     }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我调用请求对象内的getMyObject()时,jackson将嵌套的自定义对象作为LinkedHashMap返回.有没有什么方法可以指定需要返回T对象?例如:如果我发送了Customer类型的对象,那么应该从该列表返回Customer?

谢谢.

java generics json jackson

96
推荐指数
2
解决办法
12万
查看次数

strtok和函数调用

我有这种非常奇怪的行为:

在下面的代码中:如果我对MyLogger的调用进行注释,那么一切正常,即我将sTempNr标记化并打印4个令牌.但是如果我取消对MyLogger的调用以进行日志记录,那么只有迭代发生一次,并且在其他测试类中使用类似的代码,如下所示,循环发生超过4次,并且冗余信息被发送到MyLogger.

因此,我使用Purify工具检查以确定MyLogger中是否存在某些内存问题.找不到任何东西.MyLogger使用vaargs提取args和vfprintf调用打印.

我不确定如何进一步调试此代码.任何指导将不胜感激!.

char sTempNr[41] = "1129Z13589.2.9.10";
char *sTempStr;
sTempStr = NULL;

sTempStr = strtok(sTempNr,".");
while (sTempStr)
{
     printf("in in TempStr[%s]\n",sTempStr);
      //MyLogger("write","","Temp String[%s]",sTempStr);

     sTempStr = strtok(NULL,".");
}
Run Code Online (Sandbox Code Playgroud)

c string strtok

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

标签 统计

c ×1

generics ×1

jackson ×1

java ×1

json ×1

string ×1

strtok ×1