我正在开发一个Web应用程序,并且在服务器端收到参数时出现一个问题。我将DTO(数据传输对象)初始化为null
的局部变量,并在传递特定参数时将对象初始化为new
。一个例子来说明我的代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Object_DTO object_DTO = null;
if(request.getParameter("parameter").equals("hello")) {
object_DTO = new Object_DTO();
object_DTO.setAttr("attr");
...
}
}
关于性能的我的问题是:初始化对象的最佳方法是什么?我应该在声明时将其设置为
new
还是保持我的操作方式? 最佳答案
我个人认为这取决于范围。 object_DTO
是否在该if
语句之外使用?在此代码示例中,使用null
可能会有用。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Note that unless except in certain cases (IoC)
// this scenario is quite easy to avoid
Object_DTO object_DTO = null;
if(request.getParameter("parameter").equals("hello")) {
object_DTO = new Object_DTO();
object_DTO.setAttr("attr");
...
} else if (request.getParameter("parameter").equals("goodbye")) {
object_DTO = new Object_DTO();
}
if (object_DTO == null) {
// Bad response
}
}
否则,请始终尝试对变量使用最有限的作用域,但是从性能角度来看,这是次要的。
但是,在单独的性能说明中,我将停止重复调用
getParameter()
。将其分配给一个String并引用它:protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter = request.getParameter("parameter");
if (parameter.equals("hello")) {
Object_DTO = new Object_DTO();
...
}
}