Вы можете изменить его на защищенный.Пожалуйста, обратитесь к этому
https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
Если это то, что вы должны сделать любой ценой, просто ради этого вы можете использовать отражение.Это даст вам список всех переменных, определенных в классе, будь то общедоступные, частные или защищенные.Это, безусловно, имеет свои накладные расходы, но да, это то, что позволит вам использовать частные переменные.При этом вы можете использовать его в любом классе.Это не должен быть только подкласс. Пожалуйста, обратитесь к примеру ниже.Это может иметь некоторые проблемы с компиляцией, но вы можете понять основную идею, и она работает
private void getPropertiesFromPrivateClass(){
Field[] privateVariablesArray = PrivateClassName.getClass().getDeclaredFields();
Set<String> propertySet = new HashSet<String>();
Object propertyValue;
if(privateVariablesArray.length >0){
for(Field propertyVariable :privateVariablesArray){
try {
if (propertyVariable.getType() == String.class){
propertyVariable.setAccessible(true);
propertyValue = propertyVariable.get(envtHelper);
System.out.println("propertyValue");
}
} catch (IllegalArgumentException illegalArgumentException) {
illegalArgumentException.printStackTrace();
} catch (IllegalAccessException illegalAccessException) {
illegalAccessException.printStackTrace();
}
}
Надеюсь, это поможет вам.Счастливого обучения:)