Почему переменная-член Object не может быть одновременно окончательной и изменчивой в Java?

Если в классе у меня есть экземпляр ConcurrentHashMap, который будет изменен и прочитан несколькими потоками, я мог бы определить следующее:

public class My Class {

    private volatile ConcurrentHashMap<String,String> myMap = new ConcurrentHashMap<String,String>();
...
}

добавление final к результатам поля myMap в сообщении об ошибке, что я могу использовать только final или volatile. Почему не может быть и того, и другого?

33
задан Victor Sorokin 17 February 2012 в 12:34
поделиться