怎样调用arraylist<类>中类的方法啊?

publicclassdatatype{voidaa(){System.out.println("a");}}publicstaticvoidmain(String[]a... public class datatype {

void aa(){System.out.println("a"); }
}

public static void main(String[] args) {

ArrayList<ack> a =new ArrayList();
ack ak = null;
a.add(ak);
a.get(0).aa();

}
}
为什么 a.get(0).aa();总是报错?
改成 if (a.get(0)!=null){
a.get(0).aa();
}
后为什么 a.get(0)没有存到东西呢?
展开
 我来答
dai4067767
推荐于2017-09-19 · TA获得超过331个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:91.7万
展开全部
要调用类中的方法,必须对类进行实例化,比如一个类A,要掉类A的方法A1,那么你可以“类A a = new 类A()”,再通过a.A1调用A1方法。
List是是一个接口 ,定义了一些方法,但是方法没有被实现,ArrayList是一个类,实现了List这个接口和List里边定义的方法。
arraylist<类>是ArrayList<Object>泛型当中的一种情况,规定了arraylist<类>的对象在后续操作产生的结果将直接是你指定的类型。
所以要调用类的方法还是必须创建所调类的方法。
lgl1170860350
推荐于2017-09-12
知道答主
回答量:9
采纳率:0%
帮助的人:6.4万
展开全部
1.你写的程序有问题,左右大括号不对应
2.ack应该是一个类,它里面有aa()方法吗
3.ak这个类没有实例化
4.没有引入相应的包
试试下面的:Test.java(JCreator下编译成功)
import java.util.*;
public class Test
{
public void aa()
{
System.out.println("aa method()");
}
public static void main(String args[])
{
ArrayList<Test> list=new ArrayList<Test>();
Test t=new Test();
list.add(t);
list.get(0).aa();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山下玉
2012-09-04 · 超过11用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:22万
展开全部
以为你的 ak 就是一个null值。所以你执行 a.add(add) 只相当于 a.add(null); 所以 所以 a.get(0)就等于null 所以 执行 a.get(0).add()是就会报空指针。
当你加了if条件片段时 你if里面的条件 a.get(0)当前就等于 null 所以不符合执行条件所以a.get(0).aa(); 执行不到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanliwoyaoai
2012-09-03 · TA获得超过416个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:462万
展开全部
Object obj = a.get(0);
obj不是datatype 所以无法直接调用
((ack)a).aa()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式