У меня есть защищенный метод (я не хочу, чтобы этот метод можно было увидеть вне суперкласса или его подклассов). Я хочу использовать его в конструкторе копирования, но не могу. Код:Использование Java защищенного метода суперкласса в конструкторе копии подкласса
public class Superclass {
protected HashMap<Object, Object> getData() {
return new HashMap<>();
}
}
public class Subclass extends Superclass {
public Subclass(Superclass abstractClass) {
init(abstractClass);
}
private void init(Superclass abstractClass) {
//ERROR!!! getData has protected access in Superclass
for (Map.Entry<Object, Object> entry : abstractClass.getData().entrySet()) {
//do something
}
}
}
Как я могу решить эту проблему, если я все еще хочу, чтобы создать Подкласс объект из объекта Superclass, не подвергая метод GetData()?
EDIT Занятия в разных упаковках!
Я получаю кучу других ошибок с этим кодом, но не тот, который вы упомянули –
Извините, я написал этот код, чтобы он был похож на мой настоящий код проекта, но на самом деле не скомпилировал его. Я отредактирую его, чтобы он мог быть компилируемым. – DeGriz
@DeGiz и, я подозреваю, что два класса находятся в разных пакетах, верно? Это будет важная информация! –