I understand that neither a abstract class nor an interface can contain a method that is both abstract and static because of ambiguity problems, but is there a workaround?>
You have a couple of options:
Create an annotation for the static method named something like @GetAllWidgetsMethod.
As others have said, try to not use a static method.