当前位置: 首页 > 知识库问答 >
问题:

如何向泛型ArrayList添加多个类?

曹驰
2023-03-14
public class ComputerOrder<T extends Product> extends GenericOrder<T> {
private List<T> products;//the list of items

    public void addProduct(T t) {
        if (t.getClass().isInstance(ComputerPart.class)) {
            products.add(t);    
        }
        if (t.getClass().isInstance(Service.class)) {
            products.add(t);   
        }
        if (t.getClass().isInstance(Peripheral.class)) {
            products.add(t);   
        }
        else System.out.println("Not the right type of object.");
   }
public static void main(String[] args) {

    ComputerPart c;
    c = new ComputerPart(12);

    ComputerOrder<Product> g3 = new ComputerOrder<>();
    g3.addProduct(c);
    g3.print();

}

注意:“else”语句只是出于测试目的,似乎表明if语句没有正常工作,因为当我测试时,它总是被触发。

共有1个答案

桑宇
2023-03-14

您的主要问题是您搞砸了isinstance检查。那个方法反过来工作;你要找的是:

computerpart.class.isinstance(t),而不是t.getclass().isinstance(computerpart.class)。但是,您可以更简单地将其写成:T instanceof ComputerPart

其次,你把系统搞砸了。大概您的意思是代码中的每个“if”都是“else if”,当然第一个除外。

 类似资料:
  • 假设我有以下代码: 我怎样才能使它对打字和计算都更有效?

  • 我有一个ArrayList泛型通配符类型,它以Number作为扩展。我试图将整数值添加到ArrayList中。 方法add(int,capture#2-of?)在类型中,不适用于参数(int)

  • 如果作为参数输入,则不应该将其添加到arrayList中,我正在使用BlueJ编译器,并且我已经尝试了几种方法对其进行编码,但仍然无效。 下面是我的方法: 还试过这样的办法: 也试过这个: 并尝试了这个: 我相信我已经用尽了我能想到的所有方法,并在网上做了研究,但似乎不能找到一个有效的答案,我的问题。上面的方法要么添加null,要么不添加null并且不添加非null的新car参数。似乎不知道如何不

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 正在尝试向添加多个图像。我尝试了以下方法(为了简单起见修改了): 我还尝试使用将图像添加到中,并使用该索引使用设置