java泛型 List<String>[] list=new ArrayList[10]; list[1].add("abc");//空指针异常,这是为什么? 40
9个回答
展开全部
List<String>[] list=new ArrayList[10];这句是声明了一个List类型的数组,数组的元素是List,大小为10,但这个数组中还没有对象,都为空(null)
list[1]=new ArrayList(); 必须先这样声明数组里的元素,才能使用
list[1]=new ArrayList(); 必须先这样声明数组里的元素,才能使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
list[1].add("abc")等于是null.add("abc"),因为你只初始化了list,并没有初始化里面每一个对象
下面这样才行
List<String>[] list=new ArrayList[10];
list[1] = new ArrayList();
list[1].add("abc");
下面这样才行
List<String>[] list=new ArrayList[10];
list[1] = new ArrayList();
list[1].add("abc");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 import java.util.*;
2 public class Fanxing{
3 public static void main(String args[]){
//初始化一个数组长度为10。里面每的一个类型为List<String>类型
4 List<String> list[]=new ArrayList[10];//使用ArrayList初始化长度为10(因为List是接口所以只能使用其子类初始化,初始化就是指定数组长度)的数组,或者理解为创建长度为10的数组。
//为数组中第2个变量赋初值。
5 list[1]=new ArrayList();
//操作该初值,初值为List链表,操作链表为链表增加一个值;
6 list[1].add("sss");//增加String正确
7 list[1].add(new Integer(10));//增加Integer错误,证明第6行的List<String>对list[]变量的泛型约束有效
8 String s=list[1].get(0);//没有报类型转换错误,同样证明第6行的List<String>对list[]变量的泛型约束有效
9 System.out.println(s);
}
}
/**
*第7行就是指定一个数组的长度,数组的初始化,是固定写法,不可以写作 new ArrayList<String>();之所以有这个数组初始化的另类,是因为sun要告知Java程序员泛型并不存在于JVM。
*总结 语法规则:数组的初始化的含义即指定数组的长度,需要注意的是泛型类型的数组初始化必须使用自然类型。sun是为了告知Java程序员泛型并不存在于JVM
*/
2 public class Fanxing{
3 public static void main(String args[]){
//初始化一个数组长度为10。里面每的一个类型为List<String>类型
4 List<String> list[]=new ArrayList[10];//使用ArrayList初始化长度为10(因为List是接口所以只能使用其子类初始化,初始化就是指定数组长度)的数组,或者理解为创建长度为10的数组。
//为数组中第2个变量赋初值。
5 list[1]=new ArrayList();
//操作该初值,初值为List链表,操作链表为链表增加一个值;
6 list[1].add("sss");//增加String正确
7 list[1].add(new Integer(10));//增加Integer错误,证明第6行的List<String>对list[]变量的泛型约束有效
8 String s=list[1].get(0);//没有报类型转换错误,同样证明第6行的List<String>对list[]变量的泛型约束有效
9 System.out.println(s);
}
}
/**
*第7行就是指定一个数组的长度,数组的初始化,是固定写法,不可以写作 new ArrayList<String>();之所以有这个数组初始化的另类,是因为sun要告知Java程序员泛型并不存在于JVM。
*总结 语法规则:数组的初始化的含义即指定数组的长度,需要注意的是泛型类型的数组初始化必须使用自然类型。sun是为了告知Java程序员泛型并不存在于JVM
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
list[0] 是个List 你没有初始化就Add 必然 空指针,
应该这样:
List<String>[] list=new ArrayList[10];
list[1] = new ArrayList<String>();
list[1].add("abc");
望采纳
我了个擦,我晚了
应该这样:
List<String>[] list=new ArrayList[10];
list[1] = new ArrayList<String>();
list[1].add("abc");
望采纳
我了个擦,我晚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询