是引用不能变,也就是final指向的变量地址不能变,对于一个变量是某个对象的话,对象内部属性的值都是可以变的。
为了清楚说明,附上代码:
public class Test1 {
static class Animal {
String type = "dog";
Animal() {
}
Animal(String type) {
this.type = type;
}
void setType(String type) {
this.type = type;
}
String getType() {
return this.type;
}
}
public static void main(String[] args) {
final Animal animal = new Animal();
System.out.println(animal.getType());
animal.setType("cat");
System.out.println(animal.getType());
}
}
结果显而易见:
dog
cat