У меня есть класс, который реализует интерфейс, но имеет несколько дополнительных методов. Я не могу редактировать интерфейс для добавления дополнительных методов, и один из методов этого интерфейса возвращает тип самого интерфейса.Как я могу вызвать метод, который находится в классе, который реализует интерфейс, на объект этого типа интерфейса?
public interface ExampleInterface{
public ExampleInterface method1();
}
У класса есть дополнительный метод, который я хочу использовать, который распечатает содержимое класса.
public class ExampleInterfaceImpl implements ExampleInterface {
public ExampleInterface method1() {
//method code
}
public void print() {
//print method code
}
}
Так что мой вопрос, если у меня есть объект типа ExampleInterface, то есть то, что возвращаемый method1(), и я тогда хочу напечатать его с помощью печати(), как можно что делаю, посмотрев, что печать() есть в ExampleInterfaceImpl поэтому не может быть вызван на объект типа ExampleInterface.
пожалуйста, напишите ваш вопрос более точным – Kitesurfer
Вы можете попытаться бросить или использовать 'instanceof' , иначе вы не можете, это только то, что делают интерфейсы. –
Если вы знаете, что это на самом деле 'ExampleInterfaceImpl', вы можете применить его к этому типу и использовать этот метод. Но это пахнет плохим дизайном. Вероятно, вы должны использовать 'toString()' правильно вместо 'print()', и тогда вы сможете использовать это для печати объекта без кастинга. – RealSkeptic