Мне интересно, можно ли заставить какую-либо реализацию определенного интерфейса автоматически выполнять определенное действие во время инициализации самого интерфейса. Примерно так:
public interface MyInterface {
public static final ArrayList<MyInterface> IMPLEMENTATIONS = new ArrayList<>();
public static void init(){
// Somecode...
}
void method1();
void method2();
}
Мне бы хотелось, чтобы при инициализации интерфейса, например, если вызывается метод init , тогда необходимо создать новый экземпляр каждого класса, который реализует интерфейс, и добавить его в ArrayList.
Целью создания чего-то подобного является создание единой программы, которая может запускать любую другую программу, которую я пишу и хочу получить доступной. По сути, он запускается при запуске компьютера и может использоваться для запуска любой другой программы, которую я написал, вместо того, чтобы добавлять каждую новую программу в системную папку автозапуска.
Возможно ли что-то подобное?