Всси привет, вопрос в следующем, есть вот такой класс
class ImmutableUserAgent implements UserAgent {
private final String userAgentString;
private final ImmutableAgentField userAgentStringField;
private final Map<String, ImmutableAgentField> allFields;
private final List<String> availableFieldNamesSorted;
private final boolean hasSyntaxError;
private final boolean hasAmbiguity;
private final int ambiguityCount;
public ImmutableUserAgent(MutableUserAgent userAgent) {
userAgentString = userAgent.userAgentString;
hasSyntaxError = userAgent.hasSyntaxError;
hasAmbiguity = userAgent.hasAmbiguity;
ambiguityCount = userAgent.ambiguityCount;
userAgentStringField = new ImmutableAgentField(userAgentString, 0L, false, userAgentString);
Map<String, ImmutableAgentField> preparingAllFields = new LinkedHashMap<>(userAgent.allFields.size());
Последняя строка, т.е.
Map<String, ImmutableAgentField> preparingAllFields = new LinkedHashMap<>(userAgent.allFields.size());
обращается к полю allFields класса MutableUserAgent
Вопрос в том, как такое возможно, тут идет обращению к полю private, такое возможно в Java или я чего-то не понимаю?