小编pbe*_*nyi的帖子

使用Jackson将Json反序列化为另一个类层次结构

现在我和杰克逊一起工作,我对此有一些疑问.

首先.我有两个服务,第一个是数据收集和发送服务,第二个接收这些数据,例如,将其记录到文件中.

所以,第一个服务有类层次结构,如下所示:

         +----ConcreteC
         |
Base ----+----ConcreteA
         |
         +----ConcreteB
Run Code Online (Sandbox Code Playgroud)

第二个服务有类层次结构,如下所示:

ConcreteAAdapter extends ConcreteA implements Adapter {}
ConcreteBAdapter extends ConcreteB implements Adapter {}
ConcreteCAdapter extends ConcreteC implements Adapter {}
Run Code Online (Sandbox Code Playgroud)

第一个服务一无所知ConcreteXAdapter.

我在第一个服务上发送数据的方式:

Collection<Base> data = new LinkedBlockingQueue<Base>()
JacksonUtils utils = new JacksonUtils();
data.add(new ConcreteA());
data.add(new ConcreteB());
data.add(new ConcreteC());
...
send(utils.marshall(data));
...

public class JacksonUtils {

    public byte[] marshall(Collection<Base> data) throws IOException {
        ByteArrayOutputStream out = new ByteArrayOutputStream() {
            @Override
            public byte[] toByteArray() {
                return buf;
            }
        };

        getObjectMapper().writeValue(out, data);
        return …
Run Code Online (Sandbox Code Playgroud)

java serialization json jackson deserialization

22
推荐指数
3
解决办法
4万
查看次数

发生在Java内存模型中的关系之前

关于JLS ch17 线程和锁,它说"如果一个动作发生在另一个之前,那么第一个动作在第二个之前可见并且在第二个之前被命令"; 我想知道:

(1)说"之前订购"的真正含义是什么?因为即使action_a发生在action_b之前,action_a也可以在action_b之后的某些实现中执行,对吧?

(2)如果action_a发生在action_b之前,是否意味着action_a绝不能看到action_b?或者action_a可能会看到或看不到action_b?

(3)如果action_a没有发生 - 在action_b之前,而action_b没有发生 - 在action_a之前,是否意味着action_a可能会看到或看不到action_b?

(4)之前没有任何循环发生,对吧?

任何答案将不胜感激:)

java jvm jvm-hotspot java-memory-model happens-before

6
推荐指数
2
解决办法
616
查看次数

如何在Idea中复制当前行号?

有人知道如何在Intellij Idea 11中复制当前行号吗?

intellij-idea

5
推荐指数
2
解决办法
2477
查看次数