Итак, у меня есть интерфейс Generator:
public interface Generator
{
public Generator getInstance(); (The problem is here - methods in interface can't be static)
public Account generate() throws WalletInitializationException;
}
И 2 других класса, которые реализуют интерфейс.
Теперь я хотел бы иметь класс GeneratorFactory, который получает объект класса Class , вызывает метод getInstance () и возвращает объект класса.
Примерно так:
public class GeneratorFactory
{
private GeneratorFactory()
{
}
public static Generator getGenerator(Class<Generator> generatorClass)
{
return (Generator) generatorClass.getMethod("getInstance", null).invoke((Need to have instance) null, null); (Should be runtime error)
}
}
Но поскольку метод getInstance () является методом экземпляра, а не stati c метода, я не могу вызвать invoke () с нулевым параметром для экземпляра.
Я подумал о создании абстрактного класса Factory, который содержит метод getInstance () и абстрактный метод generate () для Generators, чтобы реализовать его, будет ли это правильный подход?