我们假设该值为字符串或类对象。
context.forward(key, value, topic);
在上一行之后,我们可以立即执行以下操作吗?如果记录在生产者缓冲区中,它们是否都将以null的形式发布到主题?
value = null;
答案 0 :(得分:1)
很好,因为您传递了引用。如果value
是原始类型(此API不可能),则可以复制该值。
可能会导致问题的是,如果您修改所传递的对象(尽管不能与String
类型一起使用)。假设它是POJO类型,并且您在set()
之后调用context.forward
-因为下游节点可能仍会使用传入的引用,因此调用set()
会修改先前转发的POJO。这可能会导致问题。