Возможен ли интерфейс
не содержащий ни одного члена и если да, какой практический смысл от такого интерфейса?
Да, возможен. Такие интерфейсы называют маркерными. Они нужны для индикации чего-либо JVM, компилятору или какой-либо библиотеке. Пустые они потому, что позволяют добавить некоторый признак/маркер/индикацию к типам, не меняя контракты этих типов.
В Джаве такими интерфейсами являются, например, Serializable
и Cloneable
. Существование Serializable
позволяет сделать проверку "можно ли сериализовать этот объект" более типизированным образом, сведя ее к проверке "имплементирует ли этот объект интерфейс Serializable
".
Заменой маркерным интерфейсам также могут служить аннотации (например, @ThreadSafe
).
Интерфейс-маркер на Википедии.
Да, это возможно.
Существует шаблон, который называется интерфейс-маркер. Классы реализуют интерфейс не содержащий, ни одного метода. Это требуется для того, чтобы отметить определенные классы, с которыми в дальнейшим возможны, какие-то определенные действия.
Чтобы было понятнее, приведу пример. В стандартной библиотеке существует интерфейс java.lang.Cloneable
. Он показывает, что переопределеный метод в классе java.lang.Object.clone()
будет возвращать копию объекта данного класса.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Столкнулся с проблемой, при компиляции приложения libgdx, приложение не открывает окно, а завершается с сообщением Process finished with exit code -1073740791 (0xC0000409)...
Здравствуйте, требуется помощь профессионала, так как эта задача чрезвычайно сложна
Как узнать установлен ли на телефоне WhatsApp не вызывая startActivity?
Разбирался я тут со строками и на одном ресурсе прочитал следующий тезис: