Почему я не могу определить статический метод в интерфейсе Java?
Вот пример:
Код: Выделить всё
public interface IXMLizable
{
static T newInstanceFromXML(Element e);
Element toXMLElement();
}
Одной из возможных проблем может быть то, что происходит, когда вы звоните:
Код: Выделить всё
IXMLizable.newInstanceFromXML(e);
Думаю, я ищу более глубокий ответ, чем «потому что так устроена Java».
Есть ли особая технологическая причина, по которой статические методы нельзя перезаписать? То есть, почему разработчики Java решили сделать методы экземпляра переопределяемыми, а не статические?
Проблема моего проекта в том, что я пытаюсь использовать интерфейсы для обеспечения соблюдения соглашений о кодировании.
То есть цель интерфейса двоякая:
- Мне нужен IXMLizable интерфейс, позволяющий мне преобразовывать классы, реализующие его, в элементы XML (работает использование полиморфизма). отлично).
- Если кто-то захочет создать новый экземпляр класса, реализующего интерфейс IXMLizable, он всегда будет знать, что там будет статический фабричный метод newInstanceFromXML(Element e).
Подробнее здесь: https://stackoverflow.com/questions/512 ... -interface
Мобильная версия