为了账号安全,请及时绑定邮箱和手机立即绑定

在Java 8 steam foreach中查找元素的索引

在Java 8 steam foreach中查找元素的索引

犯罪嫌疑人X 2019-04-24 18:15:25
已经有一些帖子看起来相对于此,我经历过它们,但那些没有解决我的问题:主题:我有一个方法和一些逻辑,我必须使用流进行代码优化。我的方法是:(这里我试图以格式化的方式打印电子邮件,即)public static StringBuilder printEmailsListFormat(ArrayList<String> a) {     StringBuilder sb = new StringBuilder();     for (int i = 0; i < a.size(); i++) {         if (i % 3 ==0)         {             sb.append(String.format("%-45s", a.get(i)));             sb.append("\n");         }         else             sb.append(String.format("%-45s", a.get(i)));     }     return sb;}我必须优化这段代码,我试了半个小时,甚至没有运气。你能帮我吗?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

它可以通过以下方式实现ResponseBodyAdvice

允许在执行一个@ResponseBody或一个ResponseEntity控制器方法之后但在使用一个主体写入正文之前自定义响应HttpMessageConverter

实现可以直接注册RequestMappingHandlerAdapterExceptionHandlerExceptionResolver或者更可能注释,@ControllerAdvice在这种情况下,它们将被两者自动检测。

所以你可能有类似的东西:

@ControllerAdvicepublic class MyResponseBodyAdvisor implements ResponseBodyAdvice<Object> {

    @Override
    public boolean supports(MethodParameter returnType,
                            Class<? extends HttpMessageConverter<?>> converterType) {

        return converterType.isAssignableFrom(MappingJackson2HttpMessageConverter.class);
    }

    @Override
    public Object beforeBodyWrite(Object body,
                                  MethodParameter returnType,
                                  MediaType selectedContentType,
                                  Class<? extends HttpMessageConverter<?>> selectedConverterType,
                                  ServerHttpRequest request,
                                  ServerHttpResponse response) {

        MyResponseWrapper wrapper = new MyResponseWrapper();
        wrapper.setData(body);
        return wrapper;
    }}

哪里MyResponseWrapper是你用来包裹响应有效载荷类。


查看完整回答
反对 回复 2019-05-15
?
RISEBY

TA贡献1856条经验 获得超5个赞

您可以使用ResponseBodyAdvice<T>全局拦截响应POJO,然后将其编组为JSON,但这似乎不合适,因为您的每个REST方法都应该根据方法的功能生成不同的消息。此外,无论如何,这会强制您使用一些包装类进行响应。

所以,我想,最好在每种方法中手动将数据(以及状态和消息)包装到响应中


查看完整回答
反对 回复 2019-05-15
  • 3 回答
  • 0 关注
  • 2367 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号