История изменений
Исправление arkhnchul, (текущая версия) :
малость не понял вопроса. Но если моя интерпретация верна, и у нас есть нечто типа такого:
public class Foo{
public final AType A=new AType();
}
......
public class AType{
public Bar B=new Bar();
}
public class Bar{
public Integer C=20;
}
то да, new Foo().A.B.C=10 проканает. Нельза написать new Foo().A=new Atype(), ибо A - final и на данном этапе уже инициализировано, т.е. само по себе это поле (читай «ссылку на объект А») менять нельзя, но что там происходит внутрях А - проблемы А.
Исходная версия arkhnchul, :
малость не понял вопроса. Но если моя интерпретация верна, и у нас есть нечто типа такого:
public class Foo{
public final AType A=new AType();
}
......
public class AType{
public Bar B=new Bar();
}
public class Bar{
public Integer C;
}
то да, new Foo().A.B.C=10 проканает. Нельза написать new Foo().A=new Atype(), ибо A - final и на данном этапе уже инициализировано, т.е. само по себе это поле (читай «ссылку на объект А») менять нельзя, но что там происходит внутрях А - проблемы А.