Java 将对象初始化为空或新?
我正在开发一个web应用程序,当我在服务器端收到参数时,出现了一个问题。我将DTO的数据传输对象作为局部变量初始化为null,当传递特定参数时,我将对象初始化为new。举例说明我的代码:Java 将对象初始化为空或新?,java,performance,coding-style,Java,Performance,Coding Style,我正在开发一个web应用程序,当我在服务器端收到参数时,出现了一个问题。我将DTO的数据传输对象作为局部变量初始化为null,当传递特定参数时,我将对象初始化为new。举例说明我的代码: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object_DTO object_DTO = null;
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 on declaration还是保持我的方式?Object\u DTO Object\u DTO=null;不创建任何对象
新建对象\u DTO创建并初始化对象,只有在实际需要对象时才应执行此操作。Object\u DTO Object\u DTO=null;不创建任何对象
新建对象\u DTO创建和初始化对象,只有在实际需要对象时才应该这样做。我个人认为这取决于范围。对象是否在if语句之外使用?在这个代码示例中,使用null可能很有用 否则,始终尝试对变量使用最有限的范围,但就性能而言,这是次要的 但是,在另一个性能说明中,我将停止重复调用getParameter。将其指定给一个字符串,并改为引用该字符串:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter = request.getParameter("parameter");
if (parameter.equals("hello")) {
Object_DTO = new Object_DTO();
...
}
}
我个人认为这取决于范围。对象是否在if语句之外使用?在这个代码示例中,使用null可能很有用 否则,始终尝试对变量使用最有限的范围,但就性能而言,这是次要的 但是,在另一个性能说明中,我将停止重复调用getParameter。将其指定给一个字符串,并改为引用该字符串:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter = request.getParameter("parameter");
if (parameter.equals("hello")) {
Object_DTO = new Object_DTO();
...
}
}
您好,如果您在doPost中使用DTO对象,即使不要求atribute更好地使用new进行设置,否则您所做的一切都是正确的…您能提供更完整的代码吗?因为我不明白为什么不在if中初始化DTO。另外,根据Java中的代码约定,使用CamelCase进行命名。Camel-casing也将是一个好主意。你们指的是Camel-casing,比如:ObjectDto而不是Object\u DTO?你们应该首先考虑清楚性。赋值为=null可能少于1纳秒或完全优化,与其他任何操作相比都微不足道。嗨,如果您在doPost中使用DTO对象,即使不要求atribute更好地使用new进行设置,同时声明其他任何操作都是正确的…您能提供更完整的代码吗?因为我不明白为什么不在if中初始化DTO。另外,根据Java中的代码约定,使用CamelCase进行命名。Camel-casing也将是一个好主意。你们指的是Camel-casing,比如:ObjectDto而不是Object\u DTO?你们应该首先考虑清楚性。赋值为=null可能少于1纳秒或完全优化,与其他任何操作相比都微不足道。在您的示例中,您应该在任何if语句之前初始化对象,并更改最后一个if-to-else块。因为我们不应该重复自己。想象一下,在创建对象之后,你必须为每个if设置5个完全相同的不同字段,并为每个if添加1个不同的设置方法,这将是一个丑陋的问题。完美的答案,正是我需要知道的。实际上,我将其分配给一个字符串,这只是一个简单的示例:。谢谢在您的示例中,您应该在任何if语句之前初始化对象,并更改最后一个if-to-else块。因为我们不应该重复自己。想象一下,在创建对象之后,你必须为每个if设置5个完全相同的不同字段,并为每个if添加1个不同的设置方法,这将是一个丑陋的问题。完美的答案,正是我需要知道的。实际上,我将其分配给一个字符串,这只是一个简单的示例:。谢谢