Java 如何处理类型擦除?

Java 如何处理类型擦除?,java,Java,任务是 你被要求在一家烘焙面包房及其不同子类的公司执行安全审计,并将其装在一个漂亮的盒子里出售。在向客户发布之前,使用精心设计的NaiveQualityControl类检查所有框。最近发生了许多非面包店(如纸)包装在盒子里而未通过质量检查的案例 简单地看一下NaiveQualityControl,就可以得出这样的结论:为NaiveQualityControl提供一个装满可以通过QC的纸张的盒子是非常容易的,您的任务就是演示这一点。相关类别代码如下: /* This class and its s

任务是 你被要求在一家烘焙面包房及其不同子类的公司执行安全审计,并将其装在一个漂亮的盒子里出售。在向客户发布之前,使用精心设计的NaiveQualityControl类检查所有框。最近发生了许多非面包店(如纸)包装在盒子里而未通过质量检查的案例

简单地看一下NaiveQualityControl,就可以得出这样的结论:为NaiveQualityControl提供一个装满可以通过QC的纸张的盒子是非常容易的,您的任务就是演示这一点。相关类别代码如下:

/* This class and its subclasses should pass quality check */
class Bakery {}


class Cake extends Bakery {}


/* But this should not */
class Paper {}
您需要将实现添加到Violator.defraud()方法,该方法将执行以下操作:

根据方法签名创建框列表 将纸张对象至少放在列表中的一个框中 结果列表应通过NaiveQualityControl检查

我试着跟着

class Violator {

public static List<Box<? extends Bakery>> defraud() {
    List<Box<? extends Bakery>> lbc = new ArrayList<Box<? extends Bakery>>();
    Box<? extends Bakery> bb =lbc.get(0);
    Paper p = new Paper();
    bb.put(p);
    return lbc;
}
违纪者{
公共静态列表我写的

public static List<Box<? extends Bakery>> defraud()   {
    List<Box<? extends Bakery>> lbc = new ArrayList<Box<? extends Bakery>>();
    Paper p = new Paper();
    try {
        Box box = Box.class.newInstance();

        box.put(p);
        lbc.add(box);
    }
    catch(IllegalAccessException iae){}
    catch(InstantiationException ie){}
    return lbc;
}

public static list欢迎使用Stack Overflow。请学习Stack Overflow的工作原理,并阅读如何提高问题的质量。然后,您的问题将包含您拥有的源代码,其他人可以对其进行编译和测试。