我想管理类的ArrayList.
举例来说,我有3种类型的过滤器:TextFilter,DurationFilter和TimeFilter延伸Filter.
这似乎是正确的:
List<Class> filters = new ArrayList<Class>();
filters.add(TextFilter.class);
filters.add(DurationFilter.class);
filters.add(TimeFilter.class);
Run Code Online (Sandbox Code Playgroud)
但是现在我想用它来约束ArrayList类型
List<Filter.class> filters = new ArrayList<Filter.class>();
filters.add(TextFilter.class);
filters.add(DurationFilter.class);
filters.add(TimeFilter.class);
Run Code Online (Sandbox Code Playgroud)
但它似乎不正确.你能解释一下原因吗?你有一个解决方案只接受Filter子类在我的ArrayList中加入吗?谢谢.
Sri*_*ati 17
用一个 ?在泛型.
List<Class<? extends Filter>> filters = new ArrayList<Class<? extends Filter>>();
Run Code Online (Sandbox Code Playgroud)
因为你想要类对象而不是实例.