2014-12-04 4 views
0

У меня есть несколько классов Java, которые содержат статические методы. Я хочу, чтобы эти статические методы выполнялись каждым из классов. Как это сделать, поскольку объявление статических методов не допускается в интерфейсах Java?Убедитесь, что статический метод реализован

+1

http://stackoverflow.com/questions/512877/why-cant-i-define-a-static-method-in-a-java-interface – brso05

ответ

2

Сортировка ответа: вы не можете обеспечить это.

Статические методы не наследуются так же, как методы экземпляра, поэтому вы не сможете использовать его ни для чего значимого: вы не можете позвонить MySuperClass.staticMethod() и ожидать, что какой-либо подкласс обработает вызов. Это означает, что вы должны называть его с помощью MySubClass.staticMethod(), и в этом случае вы получите ошибку компиляции, если MySubClass не реализует staticMethod.

Я хотел бы предложить вам взглянуть на ее решение с помощью одноэлементного или заводской образец и использовать методы экземпляра:

MySuperClass.getInstance(parameter).yourMethod() 
2

static методы разрешены на интерфейсах Java8.

Однако не существует способа, чтобы применял класс для реализации статического метода.

Единственное, что вы можете сделать, сделать их нестатичными и abstract (либо в интерфейсе, либо в классе abstract).

2

Если у вас есть код, который вызывает эти методы, он не будет передавать компиляцию, если они не реализованы. Если вы этого не сделаете, вам это действительно не нужно.

Смежные вопросы