我有以下的工廠轉換工廠模式吉斯模塊
public class AppleFactory<T extends Fruit>
extends AbstractAppleFactory<Class<T>, TypeOfFruits, Fruits<T>>
{
private static final AppleFactory factroy = new AppleFactory();
private AppleFactory()
{
}
public static Fruits<? extends Fruit> get(Class<? extends Fruit> clazz,
TypeOfFruits typeOfFruits)
{
return (Fruits<? extends Fruit>) factroy.getInstance(clazz, typeOfFruits);
}
@Override
protected Fruits<T> newInstance(Class<T> clazz, TypeOfFruits typeOfFruits)
{
final Fruits<T> fruits;
fruits = new FruitsImpl<T>(clazz, typeOfFruits,"hello");
return fruits;
}
}
我曾嘗試這樣做是爲了將其轉換成吉斯模塊行話:
@ImplementedBy(AppleFactoryImpl.class)
public interface AppleFactory<T extends Fruit>
{
Fruits<? extends Fruit> get(Class<? extends Fruit> clazz,
TypeOfFruits typeOfFruits)
}
@Singleton
public class AppleFactoryImpl implements AppleFactory
{
@Override
public Fruits<? extends Fruit> get(Class<? extends Fruit> clazz,
TypeOfFruits typeOfFruits)
{
final Fruits<T> fruits;
fruits = new FruitsImpl<T>(clazz, typeOfFruits,"hello");
return fruits;
}
}
但我得到一個錯誤實施。它說它不能解決水果的類型T.
我的最終目標是通過這個工廠即以具有不同的實現結合
FruitFactory,FruitFactory
到具體實現。
這可以更改爲使用提供者或其他任何東西,我不是這種方法太死板
有誰知道如何解決這一問題?
你最終的目標是什麼?它是否將'FruitFactory'FruitFactory '綁定到具體實現? –
@DavidRawson,是的,這是最終的目標。是我可以把任何水果放在這個工廠裏並初始化它。 – Schumi
太棒了!你能編輯你的問題來澄清這一點嗎?然後有人可以回答 –