我们假设有两个接口:
public interface FruitHandler<T extends Fruit>
{
setFruit(T fruit);
T getFruit();
}
public interface Fruit
{
}
Run Code Online (Sandbox Code Playgroud)
现在我想要一个工厂来创建FruitHandlers(例如AppleHander,OrangeHandler...),但是FruitHandlerFactory不知道两个接口的实现类的必要性(比如在java参数化的通用静态工厂中).本FruitHandlerFactory应以这种方式工作(其中OrangeHandler农具FruitHandler和Orange工具Fruit):
FruitHandlerFactory fhf = new FruitHandlerFactory<OrangeHandler,Orange>();
OrangeHandler fh = fhf.create();
Orange orange = (Orange)fh.getFruit();
Run Code Online (Sandbox Code Playgroud)
这应该是工厂:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误的地方:
The …Run Code Online (Sandbox Code Playgroud)