Предположим, что два интерфейса:
public interface FruitHandler<T extends Fruit>
{
    setFruit(T fruit);
    T getFruit();
}
public interface Fruit
{
}
Теперь я хочу, чтобы factory создавал FruitHandlers (например, AppleHander, OrangeHandler,...), но FruitHandlerFactory не знает о необходимых классах обоих интерфейсов (например, в java параметризованный общий статический factory). FruitHandlerFactory должен работать таким образом (где OrangeHandler реализует FruitHandler и Orange реализует Fruit):
FruitHandlerFactory fhf = new FruitHandlerFactory<OrangeHandler,Orange>();
OrangeHandler fh = fhf.create();
Orange orange = (Orange)fh.getFruit();
Это должен быть factory:
public class FruitHandlerFactory<A extends FruitHandler, B extends Fruit>
{
    public FruitHandler create()
    {
        FruitHandler<Fruit> fh = new A<B>();   //<--- ERROR
        fh.setFruit(new B());
        return fh;
    }
}
Где я получаю эту ошибку:
The type A is not generic; it cannot be parameterized with arguments <B>
BTW: Можно ли сделать метод create() статическим?
