怎样调用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)没有存到东西呢? 展开
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)没有存到东西呢? 展开
4个回答
展开全部
要调用类中的方法,必须对类进行实例化,比如一个类A,要掉类A的方法A1,那么你可以“类A a = new 类A()”,再通过a.A1调用A1方法。
List是是一个接口 ,定义了一些方法,但是方法没有被实现,ArrayList是一个类,实现了List这个接口和List里边定义的方法。
arraylist<类>是ArrayList<Object>泛型当中的一种情况,规定了arraylist<类>的对象在后续操作产生的结果将直接是你指定的类型。
所以要调用类的方法还是必须创建所调类的方法。
List是是一个接口 ,定义了一些方法,但是方法没有被实现,ArrayList是一个类,实现了List这个接口和List里边定义的方法。
arraylist<类>是ArrayList<Object>泛型当中的一种情况,规定了arraylist<类>的对象在后续操作产生的结果将直接是你指定的类型。
所以要调用类的方法还是必须创建所调类的方法。
展开全部
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();
}
}
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();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以为你的 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(); 执行不到
当你加了if条件片段时 你if里面的条件 a.get(0)当前就等于 null 所以不符合执行条件所以a.get(0).aa(); 执行不到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Object obj = a.get(0);
obj不是datatype 所以无法直接调用
((ack)a).aa()
obj不是datatype 所以无法直接调用
((ack)a).aa()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询