LINUX.ORG.RU

История изменений

Исправление 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 и на данном этапе уже инициализировано, т.е. само по себе это поле (читай «ссылку на объект А») менять нельзя, но что там происходит внутрях А - проблемы А.