【问题标题】:Change property attribute object of an final object更改最终对象的属性属性对象
【发布时间】:2018-12-31 22:05:42
【问题描述】:

方法的参数是最终对象。为什么?

这是否意味着在此方法(服务)中此对象(响应)类似于最终类(您不能在此对象/response/ 中覆盖该类/HttpServletResponse/ 的方法)?

或者这意味着在这个范围内(在这个方法 /service/ 内)你不能将该参数对象(响应)的引用更改为另一个,比如说新的 HttpServletResponse 实例(在那个范围内)?

喜欢:

response = new HttpServletResponse();

这是一个代码示例:

public class ServletLifeCycleExample extends HttpServlet {

    private int count;
...
    @Override
    protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
        getServletContext().log("service() called");
        count++;
        response.getWriter().write("Incrementing the count to " + count);
    }
...
}

【问题讨论】:

  • 你的问题不清楚。你的意思是为什么使用 final 方法参数?
  • 如果它满足您的要求,请查看此内容。 stackoverflow.com/questions/4162531/…
  • 是的,使用final方法参数是什么意思。
  • @ShafinMahmud 为什么你给我-1?
  • 不是我哥 :|我只是想澄清你的问题,我找不到给-1的理由。您有一定的疑问。

标签: java final


【解决方案1】:

就像你说的final 表示你不能改变对其他东西的引用。

response = new HttpServletResponse();

response = null;

禁止

但是你可以改变response对象的属性

类似

response.setStatus(status)

将被允许

【讨论】:

  • 正如我所想,只是...没有考虑空。为什么我不能将其更改为 null? (添加以回答请)
  • @zelenooq 分配给 null 将受到更改引用,我们不能对 final 变量执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多