搜索

首页  >  问答  >  正文

java中final修饰的变量不是不能被修改吗?为什么可以add添加?

怪我咯怪我咯2768 天前686

全部回复(4)我来回复

  • 黄舟

    黄舟2017-04-18 10:57:12

    这个 searchableList 变量本身不能再修改了,而 searchableList 指向的对象是可以修改的。

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:57:12

    这个final的用法是final变量,指searchableList 变量的引用不能被更改,已经被锁定在那个ArrayList上了,但是ArrayList本身可以改变。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 10:57:12

    final是修饰了searchableList这个变量所指向的堆内存空间,比如searchableList是你家房子,被final修饰表示房子不会再改变了,但是里面的内容是可以变的,你还可以往房子里面加东西进去或者删除更新等.

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 10:57:12

    final修饰的searchableList是一个引用,这个引用指向了ArrayList<String>,因此searchableList是不能被修改的,而ArrayList里面是用数组实现的,这个数组是可以往里面添加新的元素的。
    当你试图修改searchableList指向的对象ed时候,就报错了

    回复
    0
  • 取消回复