Я получаю некоторые исключения CastClassException.Я думаю, что мое понимание подклассов в замешательстве и может использовать некоторые уточнения.У меня есть следующие классы:
// defined in java.util
abstract class ResourceBundle {
...
}
// defined in java.util
class PropertyResourceBundle extends ResourceBundle {
...
}
// defined by myself
class ResourceBundleWrapper extends ResourceBundle {
...
// abstract in ResourceBundle
@Override public Enumeration<String> getKeys() {
throw new UnsupportedOperationException();
}
// abstract in ResourceBundle
@Override protected Object handleGetObject(String key) {
throw new UnsupportedOperationException();
}
// protected in ResourceBundle
public Set<String> handleKeySet() {
...
the code from ResourceBundle.handleKeySet()
...
}
...
}
Цель класса-обертки состоит в том, чтобы выставить метод handleKeySet (), чтобы я мог получить ключи пакета без того, чтобы получить ключи его родительского пакета,У меня примерно такой код:
ResourceBundle bundle = getBundle(); // method can return any subclass of ResourceBundle
Я бы хотел получить ключи от bundle , переведя его в ResourceBundleWrapper.Я не могу привести пакет к типу ResourceBundleWrapper без получения ClassCastException.Пример сообщения об ошибке:
java.util.PropertyResourceBundle cannot be cast to com.common.ResourceBundleWrapper
Я понимаю, почему происходит это исключение приведения.Это не то, что мне нужно уточнить.Как мне достичь того, чего я пытаюсь достичь с помощью этого подхода?