首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法在java中向抽象类类型的数组列表中添加扩展抽象类的对象

方法在java中向抽象类类型的数组列表中添加扩展抽象类的对象
EN

Stack Overflow用户
提问于 2016-03-13 00:55:32
回答 1查看 833关注 0票数 1

我在创建一个将抽象类( Ant_Abstract )扩展到扩展Ant_Abstract类型的对象的对象的方法时遇到了一些问题。到目前为止,我有两种蚂蚁,童子军和工蚁(都是扩展的Ant_Abstract),我想使用ArrayList在文件Anthill中包含这两种蚂蚁。

当我试图编译:

代码语言:javascript
复制
import java.util.*;
class Anthill{
     public ArrayList<? extends Ant_Abstract> occupants=new ArrayList(15);
     Anthill(){
     }
     public<t extends Ant_Abstract> void enter(Class<t> ant){
            occupants.add(ant);
     }
}

它给了我一个错误:“类型Ant_Abstract中的方法add(capture#1-of扩展ArrayList )不适用于参数(类)。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-13 00:58:28

为了将'T‘作为泛型类型使用,您需要在类声明中指明这一点。然后,在类Anthill的属性和方法中,您可以通过以下方式引用它:

代码语言:javascript
复制
public class Anthill<T extends Ant_Abstract>{
     public ArrayList<T> occupants = new ArrayList<>(15);

     public void enter(T ant){
            occupants.add(ant);
     }
}

您需要将您的ArrayList声明更改为:

代码语言:javascript
复制
     public ArrayList<T> occupants = new ArrayList<>(15);

Class<T>更改为T

您没有尝试添加这个类(它本身就是一个对象类型)。您的目的是添加Abstract_Ant实现的实例,而不是类本身。

花点时间阅读一下Java泛型课

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35965233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档