小编toa*_*ndv的帖子

函数输入类型的通用有界通配符

在阅读Stream界面源代码时,我发现了这个方法签名:

<R> Stream<R> map(Function<? super T, ? extends R> mapper);
Run Code Online (Sandbox Code Playgroud)

我想知道为什么输入类型mapper? super T输出类型? extends R,为什么不? extends用于两者?

java generics java-8

15
推荐指数
3
解决办法
946
查看次数

在同一频道上消费和发布消息

我正在使用Java在RabbitMQ中实现请求/答复模式。我知道通道不是线程安全的,因此每个使用者/线程使用1个通道。

我想知道在我的情况下,使用单个通道来消费和发布消息,或者接收请求并返回响应时是否存在任何问题或效率低下,就像下面的代码一样,它来自这里

channel.basicConsume(RPC_QUEUE_NAME, false, consumer);
channel.basicPublish("", props.getReplyTo(), replyProps, response.getBytes());
Run Code Online (Sandbox Code Playgroud)

我应该使用两种不同的渠道来消费和发布消息吗?

java multithreading message-queue rabbitmq mq

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

Jackson-序列化包含空元素的列表

我正在使用Jackson 2.4将对象序列化为JSON。
当我序列化对象列表时,如果某些元素为null,则结果JSON字符串包含一些“ null”字符串。

如何防止"null"元素被序列化?有什么配置ObjectMapper吗?我已经设定好了"setSerializationInclusion(Include.NON_NULL)"

这是我的代码:

List<String> strings = new ArrayList<>();
strings.add("string 1");
strings.add("string 2");
strings.add(null);
strings.add(null);
Run Code Online (Sandbox Code Playgroud)

序列化后,我得到了:

[string 1, string 2, null, null]
Run Code Online (Sandbox Code Playgroud)

如何获取不带“ null”的JSON字符串?

[string 1, string 2]
Run Code Online (Sandbox Code Playgroud)

java jackson

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

标签 统计

java ×3

generics ×1

jackson ×1

java-8 ×1

message-queue ×1

mq ×1

multithreading ×1

rabbitmq ×1