创建参数化对象,在Java中生成原始类型警告

时间:2013-11-24 05:14:30

标签: java generics

这是一个家庭作业问题,我一直在网上寻找一些指导。 stackoverflow上有几个“原始类型”的问题,但我不确定我找到了一个有帮助的问题。

所以,这就是。

我获得了一个名为Products的抽象类。产品有三个子类 - 食品,办公用品和服务。

将食物分类为乳制品,水果,谷物 OfficeGoods被分类为PaperGoods,Writing,Computer 服务子类化为DeliveryService和CleaningService。

我必须编写一些Order类 - 从接受“top 3”子类对象的GenericOrder开始 - Food,OfficeGoods,Services。添加的对象存储在ArrayList中以供以后使用。

然后我需要将GenericOrder子类化为FoodOrder和OfficeOrder。 FoodOrder需要接受食物和服务的接受对象,OfficeOrder需要接受OfficeGoods和服务的对象。

到目前为止,我能够通过界限等方式完成上述工作。

下一步是创建一个OrderProcessor类,它将是GenericOrder的子类。我遇到“子类是一个原始类型。对泛型类型子类的引用应该参数化”警告。

GenericOrder的定义是:

public class GenericOrder<T extends Product>

两个订单子类如下:

public class FoodOrder<T extends Product> extends GenericOrder<T>

OrderProcessor的定义是:

public class OrderProcessor<T extends GenericOrder<?>>

当我创建OrderProcessor时,我在OrderProcessor类中专门收到警告:

OrderProcessor<FoodOrder> opTest1 = new OrderProcessor<FoodOrder>();

该程序似乎运作得很远,但我想知道发生了什么,以及如何解决它。

对不起,很长的帖子。如果需要,我可以发布更多细节......

0 个答案:

没有答案