首页 > 解决方案 > 具有泛型类型的对象的 ArrayList

问题描述

我的泛型类有一些问题。这里是代码示例:

     public abstract class Foo <C extends Component> {
        //some code
     }

     public class Bar extends Foo <ConcretComponent> {
        //some code
     }

    public class Application {
        private ArrayList<Foo> fooList = new ArrayList<Foo>();
        public static main (String[] args) {
            fooList.add(new Bar());
        }
    }

如果我像这样编写代码,我在声明 fooList 时会收到警告,因为我没有给出 Foo 的通用类型,并且代码可以正常工作。但如果我写

    private ArrayList<Foo<Component>> fooList = new ArrayList<Foo<Component>>();

它在添加时给了我错误,因为它认为它不适用于 Bar 对象。我只是放了一个@SupressWarnings 还是他们是一种“干净”的方式来做到这一点?

标签: java

解决方案


推荐阅读