У меня есть метод суперкласса, который возвращает себя (для шаблона построителя). Этот класс имеет несколько подклассов, поэтому я хочу вернуть ссылку на фактический (подкласс) тип объекта. Что-то вроде этого:Как вернуть ссылку подкласса из метода суперкласса
class SuperClass {
T someMethodThatDoesSameThingForAllSubclasses() {
// blablbal
return reference_of_actual_object;
}
}
Так что я могу вызывать другие методы подкласса из ссылки подкласса без литья. Например:
SubClass obj=new SubClass();
obj.someMethodThatDoesSameThingForAllSubclasses().someSubclassMethod();
//currently this gives compiler error. because first method returns superclass reference and super class doesn't have someSubclassMethod
Возможно ли это, и имеет смысл попытаться сделать что-то подобное?
Таким образом, я не смог вызвать метод подкласса. Ошибка компиляции остается. Кроме того, существует проблема с внутренним классом customexception. Таким образом, компилятор не позволяет наследованию от Throwable. – user3354638
@ user3354638: Ну, вы раньше не упоминали об исключениях, но подкласс должен быть хорошим, если вы дадите ему правильный 'T'. Я приведу пример. –
Я добавил методы вызова заклинателя ко всем подклассам. Это ужасно, но сейчас работает. – user3354638