已經(jīng)有一些帖子看起來相對于此,我經(jīng)歷過它們,但那些沒有解決我的問題:主題:我有一個方法和一些邏輯,我必須使用流進(jìn)行代碼優(yōu)化。我的方法是:(這里我試圖以格式化的方式打印電子郵件,即)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;}我必須優(yōu)化這段代碼,我試了半個小時,甚至沒有運(yùn)氣。你能幫我嗎?
3 回答

開心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗 獲得超13個贊
它可以通過以下方式實現(xiàn)ResponseBodyAdvice
:
允許在執(zhí)行一個
@ResponseBody
或一個ResponseEntity
控制器方法之后但在使用一個主體寫入正文之前自定義響應(yīng)HttpMessageConverter
。實現(xiàn)可以直接注冊
RequestMappingHandlerAdapter
,ExceptionHandlerExceptionResolver
或者更可能注釋,@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
是你用來包裹響應(yīng)有效載荷類。

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊
您可以使用ResponseBodyAdvice<T>
全局?jǐn)r截響應(yīng)POJO,然后將其編組為JSON,但這似乎不合適,因為您的每個REST方法都應(yīng)該根據(jù)方法的功能生成不同的消息。此外,無論如何,這會強(qiáng)制您使用一些包裝類進(jìn)行響應(yīng)。
所以,我想,最好在每種方法中手動將數(shù)據(jù)(以及狀態(tài)和消息)包裝到響應(yīng)中
添加回答
舉報
0/150
提交
取消