我正在为基于spring mvc的应用程序编写一些ajax控制器。现在在一个单独的类中,我有三个方法用于具有相同根URL的三个独立的ajax调用处理程序(这就是我将它们放在单个类中的原因)。现在在每个控制器中我必须返回一个Json(字符串化),我使用Object Mapper来实现它。但是当我看到除了参数类型之外所有这三种方法看起来完全相似时,我觉得是否有办法使代码更优雅。
private String translateGetABCResponseToString(ABC response) {
try {
return mapper.writeValueAsString(response);
} catch (JsonProcessingException ex) {
throw new ValidationException(ex);
}
}
private String translateGetDEFResponseToString(DEF response) {
try {
return mapper.writeValueAsString(response);
} catch (JsonProcessingException ex) {
throw new ValidationException(ex);
}
}
private String translateGetXYZResponseToString(XYZ response) {
try {
return mapper.writeValueAsString(response);
} catch (JsonProcessingException ex) {
throw new ValidationException(ex);
}
}
现在,我想要的是有一种制作单一方法的方法,因为所有三种方法基本上都在做同样的事情。
答案 0 :(得分:1)
只需使用Object
:
private String translateObjectToString(Object obj) {
try {
return mapper.writeValueAsString(obj);
} catch (JsonProcessingException ex) {
throw new ValidationException(ex);
}
}
Mapper不在乎你给它什么。一切都会好起来的。